Πρόταση If...Then...Else

Καθορίζει ένα ή περισσότερα μπλοκ προτάσεων που πρόκειται να εκτελεστούν μόνο αν μια δεδομένη συνθήκη είναι True (Αληθής).

Σύνταξη:

If condition=true Then ομάδα δηλώσεων [ElseIf condition=true Then] ομάδα δηλώσεων [Else] ομάδα δηλώσεων EndIf

Αντί για Else If μπορείτε να γράψετε ElseIf, αντί για End If μπορείτε να γράψετε EndIf.

Παράμετροι:

Η δήλωση If...Then εκτελεί ομάδα προγραμμάτων ανάλογα με τις δεδομένες συνθήκες. Όταν η LibreOffice Basic συναντά μια δήλωση If, η συνθήκη ελέγχεται. Αν η τιμή είναι αληθής, εκτελούνται όλες οι επακόλουθες δηλώσεις μέχρι την επόμενη δήλωση Else ή ElseIf. Αν η συνθήκη είναι ψευδής και ακολουθεί δήλωση ElseIf , η LibreOffice Basic ελέγχει την επόμενη συνθήκη και εκτελεί τις ακόλουθες δηλώσεις αν η συνθήκη είναι αληθής. Αν είναι ψευδής, το πρόγραμμα συνεχίζει είτε με την επόμενη πρόταση ElseIf ή Else. Οι προτάσεις που ακολουθούν την Else εκτελούνται μόνο αν καμία από τις προηγούμενες ελεγχθείσες συνθήκες δεν ήταν αληθής. Αφού αξιολογηθούν όλες οι συνθήκες και αφού εκτελεστούν οι αντίστοιχες προτάσεις, το πρόγραμμα συνεχίζει με την πρόταση που έπεται της EndIf.

Μπορείτε να τοποθετηθείτε το πολλαπλές δηλώσεις If...Then την μία μέσα στην άλλη.

Στο Else και στο ElseIf οι δηλώσεις είναι προαιρετικές.

Εικονίδιο προειδοποίησης

Μπορείτε να χρησιμοποιήσετε την GoTo και την GoSub για να φύγετε έξω από ένα μπλοκ If...Then, αλλά όχι για να φύγετε έξω από μία δομή If...Then.


Το ακόλουθο παράδειγμα σάς επιτρέπει να εισαγάγετε την ημερομηνία λήξης ενός προϊόντος, και επιστρέφει την πληροφορία αν το προϊόν έληξε.

Παράδειγμα:

Sub ExampleIfThenDate

Dim sDate As String

Dim sToday As String

    sDate = InputBox("Εισαγάγετε την ημερομηνία λήξης (MM.ΗΗ.ΕΕΕΕ")

    sDate = Right$(sDate, 4) + Mid$(sDate, 4, 2) + Left$(sDate, 2)

    sToday = Date$

    sToday = Right$(sToday, 4)+ Mid$(sToday, 4, 2) + Left$(sToday, 2)

    If sDate < sToday Then

        MsgBox "Η ημερομηνία λήξης πέρασε"

    ElseIf sDate > sToday Then

        MsgBox "Η ημερομηνία λήξης δεν έχει περάσει ακόμα"

    Else

        MsgBox "Η ημερομηνία λήξης είναι σήμερα"

    End If

End Sub