Εντολή If-Then-Else Σκοπός Μαθήματος Χρήση εντολής If Then Else για διακλάδωση σε ένα σύνολο εντολών ανάλογα με το αποτελέσματα μιας μεταβαλλόμενης συνθήκης.
Εντολή If-Then Η σύνταξη της If Then είναι η εξής: If Συνθήκη Then Εντολή(-ές)
Εντολή If-Then Παράδειγμα: Number=100 If Number<=120 Then Price = 100
Εντολή If Then Συντακτικό Λειτουργικότητα If Συνθήκη Then εντολή-a1 εντολή-am Αν ικανοποιείται η Συνθήκη Τότε εκτέλεσε τις εντολές εντολή-a1 εντολή-am
Εντολή If-Then Λογικό Διάγραμμα Συντακτικό If Συνθήκη Then εντολή-1 εντολή-m Συνθήκη ΟΧΙ ΝΑΙ εντολή-a1 εντολή-am
Εντολή If-Then Παράδειγμα: If Score>=20 Then Ward = 1000 Label1.Caption= You Win
Εντολή If-Then [05] Πρόγραμμα: Διαβάζει ένα βαθμό. Αν ο βαθμός είναι τουλάχιστον 5 βγάζει το μήνυμα Εύγε, Πέρασες!
Private Sub Command1_Click() Dim bathmos As Single bathmos = InputBox("Δώσε το βαθμό σου") If bathmos >= 5 Then MsgBox("Εύγε, Πέρασες!") End Sub Εντολή If-Then
Εντολή If-Then Private Sub Command1_Click() Dim bathmos As Single bathmos=inputbox( Δώσε βαθμό ) If bathmos >= 5 Then MsgBox ("ΕΥΓΕ, ΠΕΡΑΣΕΣ!!!") Print "ΤΕΛΟΣ ΑΞΙΟΛΟΓΗΣΗΣ" End Sub
Εντολή If-Then Εάν μετά τη δεσμευμένη λέξη κλειδί Then ακολουθεί μια και μόνο εντολή τότε η σύνταξη της μπορεί να είναι η εξής: If Συνθήκη Then Εντολή
Εντολή If Then Παράδειγμα: If bathmos >= 5 Then MsgBox("Εύγε, Πέρασες!") ή If bathmos >= 5 Then MsgBox("Εύγε, Πέρασες!")
Εντολή If Then Else Η σύνταξη της If Then Else είναι η εξής: If Συνθήκη Then Εντολή(-ές)1 Else Εντολή(-ές)2
Εντολή If-Then-Else Συντακτικό If Συνθήκη Then εντολή-a1 εντολή-am Else εντολή-b1 εντολή-bn Λειτουργικότητα Αν ικανοποιείται η συνθήκη Τότε εκτέλεσε τις εντολές εντολή-a1 εντολή-am Διαφορετικά εκτέλεσε τις εντολές εντολή-b1 εντολή-bn
Εντολή If-Then-Else Συντακτικό Λογικό Διάγραμμα If συνθήκη Then εντολή-a1 εντολή-am Else εντολή-b1 εντολή-bn συνθήκη ΟΧΙ εντολή-b1 εντολή-bn ΝΑΙ εντολή-a1 εντολή-am
Εντολή If-Then Πρόγραμμα: Διαβάζει ένα βαθμό. Αν ο βαθμός είναι τουλάχιστον 5 βγάζει το μήνυμα Εύγε, πέρασες! Στην αντίθετη περίπτωση βγάζει το μήνυμα Κόπηκες! Διάβασε περισσότερο!
Εντολή If-Then-Else Private Sub Command1_Click() Dim bathmos As Single bathmos = InputBox("Δώσε το βαθμό σου") If bathmos >= 5 Then MsgBox ("Εύγε, πέρασες!") Else MsgBox ("Κόπηκες! Διάβασε Περισσότερο!") End Sub
Εντολή If-Then-Else Private Sub Command1_Click() Dim bathmos As Single bathmos = InputBox( Δώσε βαθμό ) If bathmos >= 5 Then MsgBox ("ΕΥΓΕ, ΠΕΡΑΣΕΣ!!!") Else MsgBox ("ΚΟΠΗΚΕΣ! ΔΙΑΒΑΣΕ ΠΕΡΙΣΣΟΤΕΡΟ!") Print "ΤΕΛΟΣ ΑΞΙΟΛΟΓΗΣΗΣ" End Sub
Τελεστές Σύγκρισης = <> > < >= <= Ίσο με Διάφορο του Μεγαλύτερο από Μικρότερο από Μεγαλύτερο από ή ίσο με Μικρότερο από ή ίσο με
Τελεστές Σύγκρισης Παραδείγματα x = 0 x > 5 x >= y 5 < y x > (y + 5) (x-3) < (y + 5)
Η Visual Basic επιτρέπει τον έλεγχο περισσοτέρων από μια συνθήκες με τη χρήση ενός ή περισσοτέρων λογικών τελεστών. Οι κυριότεροι λογικοί τελεστές είναι AND, OR, EQV, XOR, και NOT. Οι τελεστές αυτοί ορίζονται παραδοσιακά με πίνακες αληθείας. Λογικοί Τελεστές
Λογικοί Τελεστές A B A AND B A OR B F F F F F T F T T F F T T T T T
Λογικοί Τελεστές A B A EQV B A XOR B F F T F F T F T T F F T T T T F
Λογικοί Τελεστές A NOT A F T T F
Flower="Τριαντάφυλλο" Price = 4 Flower="Τριαντάφυλλο" AND Price<6 (True) Flower="Γαρύφαλλο" OR Price<6 (True) NOT Price<=6 (False) Λογικοί Τελεστές
Λογικοί Τελεστές Συνθήκες (Προτάσεις) Μια συνθήκη (πρόταση) είναι αποκλειστικά συνθ1: p > 8 είτε Αληθής (True) είτε Ψευδής (False). συνθ2: q < 3 συνθ3: Ο Γιάννης είναι ψηλός. ΠΙΝΑΚΕΣ ΑΛΗΘΕΙΑΣ συνθ1 συνθ2 συνθ1 And συνθ2 συνθ1 Or συνθ2 False False False False False True False True True False False True True True True True συνθ False True Not(συνθ) True False ΠΑΡΑΔΕΙΓΜΑΤΑ Αν ισχύει: p = 12 q = 10 συνθ3 είναι False Τότε: συνθ1 And συνθ2 είναι False συνθ1 Or συνθ2 είναι True Not(συνθ1) είναι False συνθ1 Or συνθ3 είναι True Not(συνθ3) είναι True
Λογικοί Τελεστές Συνθήκες (Προτάσεις) Μια συνθήκη (πρόταση) είναι αποκλειστικά συνθ1: p > 8 είτε Αληθής (True) είτε Ψευδής (False). συνθ2: q < 3 συνθ3: Ο Γιάννης είναι ψηλός. ΠΙΝΑΚΕΣ ΑΛΗΘΕΙΑΣ συνθ1 συνθ2 συνθ1 And συνθ2 συνθ1 Or συνθ2 False False False False False True False True True False False True True True True True συνθ False True Not(συνθ) True False Αν ισχύει: p = 12 q = 10 συνθ3 είναι False Τότε: Not(συνθ1 And συνθ2) Οr (συνθ3) είναι True.
Εντολή If-Then-Else Πρόγραμμα Διαβάζει ένα βαθμό. Αν ο βαθμός δεν είναι έγκυρος (<0 ή >10) εμφανίζει κατάλληλο μήνυμα. Αν ο βαθμός είναι τουλάχιστον 5 εμφανίζει το μήνυμα Εύγε, πέρασες! αλλιώς το μήνυμα Κόπηκες! Διάβασε περισσότερο!
Εντολή If-Then-Else bathmos = InputBox("Δώσε το βαθμό σου") If bathmos >= 0 AND bathmos<=10 Then If bathmos >= 5 Then MsgBox ("Εύγε, πέρασες!!!") Else MsgBox ("Κόπηκες! Διάβασε Περισσότερο!") Else MsgBox("ΜΗ ΕΓΚΥΡΟΣ ΒΑΘΜΟΣ!")
Εντολή If-Then-Else Private Sub Command1_Click() bathmos = InputBox( Δώσε βαθμό ) If (bathmos >= 0) And (bathmos <= 10) Then If bathmos >= 5 Then MsgBox ("ΕΥΓΕ, ΠΕΡΑΣΕΣ!!!") Else MsgBox ("ΚΟΠΗΚΕΣ! ΔΙΑΒΑΣΕ ΠΕΡΙΣΣΟΤΕΡΟ!") Else MsgBox ("ΜΗ ΕΓΚΥΡΟΣ ΒΑΘΜΟΣ!!!!!") Print "ΤΕΛΟΣ ΑΞΙΟΛΟΓΗΣ" End Sub
Εντολή If-Then-Else Private Sub Command1_Click() bathmos = InputBox( Δώσε βαθμό ) If (bathmos < 0) Or (bathmos > 10) Then MsgBox ("ΜΗ ΕΓΚΥΡΟΣ ΒΑΘΜΟΣ!!!") Else If bathmos >= 5 Then MsgBox ("ΕΥΓΕ, ΠΕΡΑΣΕΣ!!!") Else MsgBox ("ΚΟΠΗΚΕΣ! ΔΙΑΒΑΣΕ ΠΕΡΙΣΣΟΤΕΡΟ!") Print "ΤΕΛΟΣ ΑΞΙΟΛΟΓΗΣΣ" End Sub
Εντολή If Then Else If Συνθήκη1 Then Εντολή(ές)1 ElseIf Συνθήκη2 Εντολή(ες)2 Else Εντολή(ες)Ν Then
Εντολή If Then Else If Age <= 6 Then Print "Μωρό" ElseIf Age <= 12 Then Print "Παιδί" ElseIf Age <= 18 Then Print "Εφηβος" ElseIf Age <= 70 Then Print "Ενήλικας" Else Print "Ηλικιωμένος"
Εντολή If-Then-Else Να γραφεί πρόγραμμα όπου δίνεται η θερμοκρασία περιβάλλοντος και εμφανίζει το εξής μήνυμα: εάν η θερμοκρασία είναι μικρότερη ή ίση με 8 βαθμούς εμφανίζει το μήνυμα "Κάνει παγωνιά", εάν η θερμοκρασία είναι μεγαλύτερη από 8 και μικρότερη ή ίση με 15 εμφανίζει το μήνυμα "Κάνει ψύχρα", εάν η θερμοκρασία είναι μεγαλύτερη από 15 και μικρότερη ή ίση με 28 εμφανίζει το μήνυμα "Έχει καλό καιρό", εάν η θερμοκρασία είναι μεγαλύτερη από 28 τότε εμφανίζει το μήνυμα "Κάνει πολύ ζέστη".
Εντολή If Then Else Dim Temp As Single Temp = InputBox("Δώσε θερμοκρασία") If Temp <= 8 Then MsgBox("Κάνει παγωνιά ) ElseIf Temp <= 15 Then MsgBox("Κάνει ψύχρα ) ElseIf Temp <= 28 Then MsgBox("Έχει καλό καιρό ) Else MsgBox( "Κάνει πολύ ζέστη )
Εντολή If Then Else Dim Temp As Single Temp = InputBox("Δώσε θερμοκρασία") If Temp <= 8 Then Label1.Caption = "Κάνει παγωνιά" ElseIf Temp > 8 AND Temp <= 15 Then Label1.Caption = "Κάνει ψύχρα" ElseIf Temp > 15 AND Temp <= 28 Then Label1.Caption = "Έχει καλό καιρό" Else Label1.Caption = "Κάνει πολύ ζέστη"
Εντολή If-Then-Else Πρόγραμμα Διαβάζει μια θερμοκρασία t και βγάζει ένα από τα παρακάτω μηνύματα: - ΚΑΝΕΙ ΠΑΓΩΝΙΑ, αν t <= 3. - ΚΑΝΕΙ ΨΥΧΡΑ, αν 3 < t < 18. - ΚΑΝΕΙ ΚΑΛΟ ΚΑΙΡΟ, αν 18 <= t < 32. - ΚΑΝΕΙ ΖΕΣΤΗ, αν 32 <= t. 3 18 32 ΠΑΓΩΝΙΑ ΚΑΝΕΙ ΨΥΧΡΑ ΚΑΛΟ ΚΑΙΡΟ ΚΑΝΕΙ ΖΕΣΤΗ
Private Sub Command1_Click() Dim t As Single t = InputBox( Δώσε Θερμοκρασία ) If t <= 3 Then Label1.Caption = ΚΑΝΕΙ ΠΑΓΩΝΙΑ" Else ' Ισχύει t > 3 If t < 18 Then Label1.Caption = " ΚΑΝΕΙ ΚΡΥΟ" Else ' Ισχύει t >= 18 If t < 32 Then Label1.Caption = " ΚΑΝΕΙ ΚΑΛΟ ΚΑΙΡΟ" Else ' Ισχύει t >= 32 Label1.Caption = " ΚΑΝΕΙ ΖΕΣΤΗ" Print "ΟΛΟΚΛΗΡΩΣΗ ΕΚΤΕΛΕΣΗΣ End Sub
Private Sub Command1_Click() Dim t As Single t = InputBox( Δώσε Θερμοκρασία ) If t < 18 Then If t <= 3 Then Label2.Caption = "ΚΑΝΕΙ ΠΑΓΩΝΙΑ" Else ' 3 < t < 18 Label2.Caption = "ΚΑΝΕΙ ΚΡΥΟ" Else ' Ισχύει t >= 18 If t < 32 Then Label2.Caption = "ΚΑΝΕΙ ΚΑΛΟ ΚΑΙΡΟ" Else ' Ισχύει t >= 32 Label2.Caption = "ΚΑΝΕΙ ΖΕΣΤΗ" Print "ΟΛΟΚΛΗΡΩΣΗ ΕΚΤΕΛΕΣΗΣ End Sub
Παράδειγμα 1 Να γραφεί πρόγραμμα που δέχεται σαν είσοδο το όνομα ενός παραγωγού, και τη σοδειά του σε κιλά, και την ποιότητα του προιόντος. Η τιμή του προϊόντος ανά κιλό προκύπτει ως εξής, ανάλογα με την ποιότητά του Ποιότητα 1 10 ευρώ το κιλό. Ποιότητα 2 8 ευρώ το κιλό. Ποιότητα 3 6 ευρώ το κιλό. Ποιότητα 4 5 ευρώ το κιλό. Το πρόγραμμα εμφανίζει στην έξοδο το όνομα του παραγωγού και το ποσό που αυτός πρέπει να εισπράξει.
Παράδειγμα 2 Να γραφεί πρόγραμμα το οποίο διαβάζει: (α) τον αριθμό μητρώου ενός εμπόρου και (β) την ποσότητα μήλων σε κιλά που αγόρασε. Το πρόγραμμα να υπολογίζει κλιμακωτά το ποσό που θα πρέπει να πληρώσει σύμφωνα με τον παρακάτω πίνακα και να εμφανίζει τον αριθμό μητρώου και το ποσό που θα πληρώσει ο έμπορος.
Παράδειγμα 2 Ποσότητα μήλων σε κιλά Τιμή σε Ευρώ/κιλό Από 0 έως και 20 4 Ευρώ Από 20 έως και 50 3 Ευρώ Από 50 και άνω 2 Ευρώ
Παράδειγμα 2 Code=InputBox ( Please give code ) Posotita=InputBox( Please give quantity ) If Posotita <= 20 Then Poson= 4*Posotita ElseIf Posotita>20 AND Posotita<= 50 Then Poson = 80 + (Posotita -20) * 3 Else Poson= 80 +90 + (Posotita-50) * 2
Παράδειγμα 3: Υπολογισμός φόρου για εκκαθάριση φορολογίας εισοδήματος Να γραφεί πρόγραμμα το οποίο δέχεται σαν είσοδο το εισόδημα ενός πολίτη και υπολογίζει το φόρο που θα πληρώσει με τον παρακάτω τρόπο: Για εισόδημα: Μέχρι και 10.000 δεν αναλογεί φόρος Μέχρι και 25.000 αναλογεί φόρος 5% Μέχρι και 40.000 αναλογεί φόρος 15% Μέχρι και 70.000 αναλογεί φόρος 30% Μεγαλύτερο των 70.000 αναλογεί φόρος 40%
Παράδειγμα 3: Υπολογισμός φόρου για εκκαθάριση φορολογίας εισοδήματος If NetIncome <= 10000 Then Tax = 0 ElseIf NetIncome <= 25000 Then Tax = (NetIncome - 10000) * 0.05 ElseIf NetIncome <= 40000 Then Tax = 750 + ((NetIncome - 25000) * 0.15) ElseIf NetIncome <= 70000 Then Tax = 750 + 2250 + ((NetIncome - 40000) * 0.3) Else Tax = 750+2250+9000 + ((NetIncome - 70000)* 0.4)
Παράδειγμα 3: Dim NetIncome As Single, Tax As Single NetIncome = InputBox("Δώσε εισόδημα") If NetIncome >= 0 Then If NetIncome <= 10000 Then Tax = 0 ElseIf NetIncome <= 25000 Then Tax = (NetIncome - 10000) * 0.05 ElseIf NetIncome <= 40000 Then Tax = 750 + ((NetIncome - 25000) * 0.15) ElseIf NetIncome <= 70000 Then Tax = 750 + 2250 + ((NetIncome - 40000) * 0.3) Else Tax = 750+2250+9000 + ((NetIncome - 70000)* 0.4) MsgBox (Tax),, "Φόρος Εισοδήματος" Else MsgBox "Λάθος Δεδομένα"
Συμβουλή Η σειρά των συνθηκών στις προτάσεις If-Then και ElseIf έχει πολύ μεγάλη σημασία. Τι θα συμβεί αν αντιστρέψετε τη σειρά των συνθηκών στο παράδειγμα της κλίμακας φορολογίας; Η Visual Basic σταματάει στην πρώτη συνθήκη που είναι αληθής, ακόμα και αν αληθεύουν και κάποιες από τις υπόλοιπες συνθήκες.
Παράδειγμα 4 Γράψτε ένα πρόγραμμα που δέχεται σαν είσοδο το όνομα ενός παραγωγού και τον αριθμό των στρεμμάτων που αυτός καλλιεργεί. Το κόστος καλλιέργειας ανά στρέμμα προκύπτει ως εξής: Για λιγότερα από 10 στρέμματα 300 ευρώ ανά στρέμμα Από 10 μέχρι 100 (όχι 100) 250 ευρώ ανά στρέμμα Από 100 μέχρι 500 (όχι 500) 200 ευρώ ανά στρέμμα Από 500 και πάνω 150 ευρώ ανά στρέμμα Το πρόγραμμα επιστρέφει στην έξοδο το όνομα του παραγωγού και το κόστος που πλήρωσε για την καλιέργειά του.
Παράδειγμα 5: Ατμοσφαιρική Ρύπανση Για τη μέτρηση της ποιότητας της ατμόσφαιρας μετρούνται δύο ρύποι: ΝΟ2 και Ο3. ΝΟ2 >400 ή Ο3 > 250 Προσοχή υψηλοί ρύποι ΝΟ2 >500 ή Ο3 > 300 Πολύ υψηλοί ρύποι ΝΟ2 >700 ή Ο3 > 500 Πάρα πολύ υψηλοί ρύποι
Παράδειγμα 5: Ατμοσφαιρική Ρύπανση Dim NO2 As Integer Dim O3 As Integer NO2 = InputBox("Παρακαλώ πληκτρολογήστε τη τιμή για το διοξείδιο του αζώτου") O3 = InputBox("Παρακαλώ πληκτρολογήστε τη τιμή για το όζον")
Παράδειγμα 5: Ατμοσφαιρική Ρύπανση If NO2 > 700 Or O3 > 500 Then Label1.Caption = " Πάρα πολύ υψηλοί ρύποι" ElseIf NO2 > 500 Or O3 > 300 Then Label1.Caption = "Πολύ υψηλοί ρύποι" ElseIf NO2 > 400 Or O3 > 250 Then Label1.Caption = "Προσοχή υψηλοί ρύποι" Else Label1.Caption = "Ρύποι μέσα στα όρια"
Παράδειγμα 6: Calculator x = Text1.Text y = Text2.Text If Option1.Value = True Then Label1.Caption = x + y If Option2.Value = True Then Label1.Caption = x - y