Όπως ήδη γνωρίζετε, η Java υποστηρίζει τις συνήθεις λογικές συνθήκες από τα μαθηματικά:
- Μικρότερο από: a < b
- Μικρότερο ή ίσο από: a <= b
- Μεγαλύτερο από: a > b
- Μεγαλύτερο ή ίσο από: a >= b
- Ίσο με: a == b
- Διαφορετικό από: a != b
Μπορείτε να χρησιμοποιήσετε αυτές τις συνθήκες για να πραγματοποιήσετε διαφορετικές ενέργειες ανάλογα με τις διαφορετικές αποφάσεις που πρέπει να πάρετε.
Παρακάτω είναι μερικά παραδείγματα χρήσης συνθηκών και δομών ελέγχου (if statements) στη Java:
int x = 10; int y = 5; if (x > y) { System.out.println("x is greater than y"); } else if (x < y) { System.out.println("x is less than y"); } else { System.out.println("x is equal to y"); }
Στο παραπάνω παράδειγμα, οι μεταβλητές x
και y
έχουν τιμή 10 και 5 αντίστοιχα. Χρησιμοποιούμε τον τελεστή μεγαλύτερου από (>
) για να ελέγξουμε αν η τιμή της x
είναι μεγαλύτερη από την τιμή της y
. Αν η συνθήκη αυτή ισχύει, τότε θα εκτελεστεί η πρώτη εντολή εντός του if
statement και θα εκτυπωθεί το κατάλληλο μήνυμα. Αν η συνθήκη αυτή δεν ισχύει, τότε προχωράμε στο επόμενο else if
statement, που ελέγχει αν η τιμή της x
είναι μικρότερη από την τιμή της y
. Αν και αυτή η συνθήκη δεν ισχύει, τότε θα εκτελεστεί η εντολή εντός του else
block και θα εκτυπωθεί το κατάλληλο μήνυμα. Σε αυτήν την περίπτωση, καθώς οι τιμές των x
και y
είναι ίσες, θα εκτυπωθεί το μήνυμα “x is equal to y”.
Μια άλλη συνήθης χρήση των συνθηκών και των δομών ελέγχου είναι η επανάληψη ενός κομματιού κώδικα μέχρι να ισχύσει μια συγκεκριμένη συνθήκη. Για παράδειγμα:
int i = 0; while (i < 5) { System.out.println(i); i++; }
Στο παραπάνω παράδειγμα, οι εντολές εντός του while
block θα επαναληφθούν όσο η συνθήκη i < 5
ισχύει. Αυτό σημαίνει ότι θα εκτυπωθούν οι αριθμοί από το 0 μέχρι το 4 στην οθόνη, καθώς οι τιμές του i
αυξάνονται κατά ένα σε κάθε επανάληψη. Όταν η συνθήκη i < 5
δεν ισχύει πλέον (δηλαδή όταν το i
γίνει ίσο με 5), η εκτέλεση του κώδικα σταματά και η εκτέλεση συνεχίζει με την επόμενη γραμμή κώδικα μετά το while
block.
Η Java διαθέτει τις εξής δομές ελέγχου (conditional statements):
Χρησιμοποιήστε το if
για να καθορίσετε ένα block κώδικα που θα εκτελεστεί, αν μια συγκεκριμένη συνθήκη είναι αληθής.
Χρησιμοποιήστε το else
για να καθορίσετε ένα block κώδικα που θα εκτελεστεί, αν η ίδια συνθήκη είναι ψευδής.
Χρησιμοποιήστε το else if
για να καθορίσετε μια νέα συνθήκη για έλεγχο, αν η πρώτη συνθήκη είναι ψευδής.
Χρησιμοποιήστε το switch
για να καθορίσετε πολλαπλά εναλλακτικά blocks κώδικα που θα εκτελεστούν.
[adinserter block=”2″]
Χρησιμοποιήστε την εντολή if για να καθορίσετε ένα μπλοκ κώδικα της Java που θα εκτελεστεί εάν μια συνθήκη είναι αληθής.
Σύνταξη:
if (condition) { // μπλοκ κώδικα που θα εκτελεστεί εάν η συνθήκη είναι αληθής }
Αν η συνθήκη είναι αληθής, τότε το μπλοκ κώδικα που βρίσκεται μέσα στην εντολή if θα εκτελεστεί. Εάν η συνθήκη είναι ψευδής, τότε το μπλοκ κώδικα δεν θα εκτελεστεί και θα συνεχιστεί η εκτέλεση του κώδικα μετά την εντολή if.
Στο παράδειγμα παρακάτω, ελέγχουμε δύο τιμές για να διαπιστώσουμε εάν το 35 είναι μεγαλύτερο από το 13. Εάν η συνθήκη είναι αληθής, τότε εκτυπώνουμε κάποιο κείμενο στην οθόνη:
int x = 35; int y = 13; if (x > y) { System.out.println("35 is greater than 13"); }
Στο παραπάνω παράδειγμα, η συνθήκη x > y
είναι αληθής, καθώς η τιμή της μεταβλητής x
είναι μεγαλύτερη από την τιμή της μεταβλητής y
. Έτσι, το κείμενο “35 is greater than 13” θα εκτυπωθεί στην οθόνη.
Μπορούμε επίσης να ελέγξουμε μεταβλητές:
int age = 18; if (age >= 18) { System.out.println("You are old enough to vote!"); }
Στο παραπάνω παράδειγμα, η συνθήκη age >= 18
είναι αληθής, καθώς η τιμή της μεταβλητής age
είναι μεγαλύτερη ή ίση με 18. Έτσι, το κείμενο “You are old enough to vote!” θα εκτυπωθεί στην οθόνη.
Χρησιμοποιήστε την εντολή else για να καθορίσετε ένα μπλοκ κώδικα της Java που θα εκτελεστεί εάν μια συνθήκη είναι ψευδής.
Σύνταξη:
if (condition) { // μπλοκ κώδικα που θα εκτελεστεί εάν η συνθήκη είναι αληθής } else { // μπλοκ κώδικα που θα εκτελεστεί εάν η συνθήκη είναι ψευδής }
Αν η συνθήκη είναι αληθής, τότε το μπλοκ κώδικα που βρίσκεται μέσα στην εντολή if θα εκτελεστεί. Αν η συνθήκη είναι ψευδής, τότε το μπλοκ κώδικα που βρίσκεται μέσα στην εντολή else θα εκτελεστεί.
Η εντολή else είναι προαιρετική και μπορεί να χρησιμοποιηθεί μόνο της ή μαζί με την εντολή if.
Στο παράδειγμα παρακάτω, ελέγχουμε την ηλικία του χρήστη και εκτυπώνουμε διαφορετικά μηνύματα ανάλογα με την ηλικία του:
int age = 18; if (age >= 18) { System.out.println("You are old enough to vote!"); } else { System.out.println("You are not old enough to vote yet."); }
Στο παραπάνω παράδειγμα, εάν η συνθήκη age >= 18
είναι αληθής, τότε θα εκτελεστεί το πρώτο μπλοκ κώδικα και θα εκτυπωθεί το μήνυμα “You are old enough to vote!”. Εάν η συνθήκη είναι ψευδής, τότε θα εκτελεστεί το δεύτερο μπλοκ κώδικα και θα εκτυπωθεί το μήνυμα “You are not old enough to vote yet.”.
Αν η τιμή της μεταβλητής age
ήταν μικρότερη των 18, τότε το μήνυμα που θα εμφανιζόταν θα ήταν “You are not old enough to vote yet.”.
[adinserter block=”3″]
Χρησιμοποιήστε την εντολή else if για να καθορίσετε μια νέα συνθήκη εάν η πρώτη συνθήκη είναι ψευδής.
Σύνταξη:
if (condition1) { // μπλοκ κώδικα που θα εκτελεστεί εάν η συνθήκη 1 είναι αληθής } else if (condition2) { // μπλοκ κώδικα που θα εκτελεστεί εάν η συνθήκη 1 είναι ψευδής και η συνθήκη 2 είναι αληθής } else { // μπλοκ κώδικα που θα εκτελεστεί εάν η συνθήκη 1 και η συνθήκη 2 είναι ψευδείς }
Αν η συνθήκη 1 είναι αληθής, τότε το μπλοκ κώδικα που βρίσκεται μέσα στην εντολή if θα εκτελεστεί. Αν η συνθήκη 1 είναι ψευδής, τότε θα ελεγχθεί η συνθήκη 2 και αν αυτή είναι αληθής, τότε το μπλοκ κώδικα που βρίσκεται μέσα στην εντολή else if θα εκτελεστεί. Αν και οι δύο συνθήκες είναι ψευδείς, τότε το μπλοκ κώδικα που βρίσκεται μέσα στην εντολή else θα εκτελεστεί.
Η εντολή else if είναι προαιρετική και μπορεί να χρησιμοποιηθεί πολλές φορές μετά την εντολή if, για να ελέγξετε περισσότερες από δύο συνθήκες.
Στο παράδειγμα παρακάτω, ελέγχουμε την ηλικία του χρήστη και εκτυπώνουμε διαφορετικά μηνύματα ανάλογα με την ηλικία του:
int age = 18; if (age >= 18) { System.out.println("You are old enough to vote!"); } else if (age >= 16) { System.out.println("You are almost old enough to vote!"); } else { System.out.println("You are not old enough to vote yet."); }
Στο παραπάνω παράδειγμα, εάν η τιμή της μεταβλητής age
είναι μεγαλύτερη ή ίση με 18, τότε θα εκτελεστεί το πρώτο μπλοκ κώδικα και θα εκτυπωθεί το μήνυμα “You are old enough to vote!”. Εάν η συνθήκη age >= 18
είναι ψευδής και η τιμή της μεταβλητής age
είναι μεγαλύτερη ή ίση με 16, τότε θα εκτελεστεί το δεύτερο μπλοκ κώδικα και θα εκτυπωθεί το μήνυμα “You are almost old enough to vote!”. Αν και οι δύο συνθήκες είναι ψευδείς, τότε θα εκτελεστεί το μπλοκ κώδικα που βρίσκεται μέσα στην εντολή else και θα εκτυπωθεί το μήνυμα “You are not old enough to vote yet.”.
Στη Java, μπορείτε να χρησιμοποιήσετε το συντομογραφικό τρόπο if…else για να γράψετε μια συνθήκη if σε μία γραμμή.
Ο τελεστής τριών σημείων ?
και :
χρησιμοποιείται για να γράψετε τη συνθήκη. Εάν η συνθήκη είναι αληθής, η πρώτη τιμή μετά το ?
θα επιστραφεί. Εάν η συνθήκη είναι ψευδής, η δεύτερη τιμή μετά το :
θα επιστραφεί.
Σύνταξη:
variable = (condition) ? expressionTrue : expressionFalse;
Παρακάτω είναι ένα παράδειγμα συντομογραφικού τρόπου if…else:
int age = 18; String result = (age >= 18) ? "You are old enough to vote" : "You are not old enough to vote"; System.out.println(result);
Στο παραπάνω παράδειγμα, εάν η συνθήκη age >= 18
είναι αληθής, η τιμή της μεταβλητής result
θα οριστεί στο "You are old enough to vote"
, διαφορετικά η τιμή της θα οριστεί στο "You are not old enough to vote"
. Στη συνέχεια, θα εκτυπωθεί η τιμή της μεταβλητής result
.