Πρόταση 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