3.1 Η δομή επιλογής if στην Java

Μπορείτε να χρησιμοποιήσετε αυτές τις συνθήκες για να εκφράσετε λογικές συνθήκες στην Java, όπως θα δείτε παραδείγματα παρακάτω:

  • Μικρότερο από: Μπορείτε να ελέγξετε αν ένας αριθμός a είναι μικρότερος από έναν αριθμό b χρησιμοποιώντας τη συνθήκη a < b.
  • Μικρότερο ή ίσο από: Μπορείτε να ελέγξετε αν ένας αριθμός a είναι μικρότερος ή ίσος από έναν αριθμό b χρησιμοποιώντας τη συνθήκη a <= b.
  • Μεγαλύτερο από: Μπορείτε να ελέγξετε αν ένας αριθμός a είναι μεγαλύτερος από έναν αριθμό b χρησιμοποιώντας τη συνθήκη a > b.
  • Μεγαλύτερο ή ίσο από: Μπορείτε να ελέγξετε αν ένας αριθμός a είναι μεγαλύτερος ή ίσος από έναν αριθμό b χρησιμοποιώντας τη συνθήκη a >= b.
  • Ίσο με: Μπορείτε να ελέγξετε αν δύο αριθμοί a και b είναι ίσοι μεταξύ τους χρησιμοποιώντας τη συνθήκη a == b.
  • Διαφορετικό από: Μπορείτε να ελέγξετε αν δύο αριθμοί a και b είναι διαφορετικοί μεταξύ τους χρησιμοποιώντας τη συνθήκη a != b.

Αυτές οι συνθήκες μπορούν να χρησιμοποιηθούν σε δομές ελέγχου, όπως την if, για να αποφασίσετε ποιο κομμάτι του κώδικα θα εκτελεστεί ανάλογα με την αλήθεια ή την ψευδαίσθηση της συνθήκης.

Παρακάτω είναι μερικά παραδείγματα χρήσης συνθηκών και δομών ελέγχου (if statements) στη Java:

int x = 10;  // Δημιουργία μεταβλητής x και ανάθεση της τιμής 10
int y = 5;   // Δημιουργία μεταβλητής y και ανάθεση της τιμής 5

if (x > y) {
    System.out.println("x is greater than y");  // Εκτύπωση μηνύματος "x is greater than y" αν η συνθήκη είναι αληθής
} else if (x < y) {
    System.out.println("x is less than y");     // Εκτύπωση μηνύματος "x is less than y" αν η συνθήκη είναι αληθής
} else {
    System.out.println("x is equal to y");      // Εκτύπωση μηνύματος "x is equal to y" αν καμία από τις προηγούμενες συνθήκες δεν είναι αληθείς
}

Ο παραπάνω κώδικας συγκρίνει τις τιμές των μεταβλητών x και y και εκτελεί διάφορες ενέργειες ανάλογα με τη σχέση μεταξύ τους. Συγκεκριμένα, κάνει τα εξής:

  1. Αρχικοποιεί τις μεταβλητές x και y με τις τιμές 10 και 5 αντίστοιχα.
  2. Έπειτα, ελέγχει αν η τιμή της μεταβλητής x είναι μεγαλύτερη από την τιμή της μεταβλητής y.
  • Αν αυτή η συνθήκη ισχύει, εκτυπώνει το μήνυμα “x is greater than y”.
  1. Αλλιώς, ελέγχει αν η τιμή της μεταβλητής x είναι μικρότερη από την τιμή της μεταβλητής y.
  • Αν αυτή η συνθήκη ισχύει, εκτυπώνει το μήνυμα “x is less than y”.
  1. Αν καμία από τις προηγούμενες συνθήκες δεν ικανοποιείται, τότε εκτυπώνει το μήνυμα “x is equal to y”.

Έτσι, ο κώδικας εκτυπώνει στην οθόνη το αποτέλεσμα της σύγκρισης των δύο μεταβλητών και προβάλλει αν η x είναι μεγαλύτερη, μικρότερη ή ίση με την y.

Ένα ακόμη συνηθισμένο παράδειγμα χρήσης των συνθηκών και των δομών ελέγχου είναι η επανάληψη ενός τμήματος κώδικα μέχρι να ικανοποιηθεί μια συγκεκριμένη συνθήκη. Για παράδειγμα:

int i = 0; // Δημιουργία μεταβλητής i και αρχικοποίηση στο 0

while (i < 5) { // Επανάληψη όσο η τιμή του i είναι μικρότερη από το 5
    System.out.println(i); // Εκτύπωση της τιμής του i
    i++; // Αύξηση της τιμής του i κατά 1
}

Ο παραπάνω κώδικας εκτελεί έναν απλό βρόχο επανάληψης (while loop) που εκτυπώνει τις τιμές της μεταβλητής i από το 0 έως το 4.

[adinserter block=”2″]

Αρχικά, η μεταβλητή i αρχικοποιείται με την τιμή 0. Έπειτα, ο βρόχος while ελέγχει τη συνθήκη i < 5, δηλαδή αν η τιμή της i είναι μικρότερη από το 5. Όσο αυτή η συνθήκη είναι αληθής, ο κώδικας μέσα στο βρόχο εκτελείται.

Στο εσωτερικό του βρόχου, η εντολή System.out.println(i); εκτυπώνει την τρέχουσα τιμή της μεταβλητής i στην οθόνη.

Έπειτα, η εντολή i++; αυξάνει την τιμή της μεταβλητής i κατά 1, προετοιμάζοντας την επόμενη επανάληψη του βρόχου.

Ο βρόχος συνεχίζει να εκτελείται μέχρι το i να γίνει ίσο με 5. Σε αυτό το σημείο, η συνθήκη i < 5 γίνεται ψευδής και η εκτέλεση του βρόχου σταματά.

Έτσι, αν εκτελέσουμε αυτόν τον κώδικα, θα εμφανιστούν οι αριθμοί 0, 1, 2, 3, 4 στην οθόνη, καθώς αυξάνεται η τιμή της μεταβλητής i κατά 1 μετά από κάθε επανάληψη.

Η Java παρέχει τις εξής δομές ελέγχου (conditional statements):

  • Η δομή if χρησιμοποιείται για να καθορίσει ένα block κώδικα που θα εκτελεστεί αν μια συγκεκριμένη συνθήκη είναι αληθής.
  • Η δομή else χρησιμοποιείται για να καθορίσει ένα block κώδικα που θα εκτελεστεί αν η ίδια συνθήκη που ελέγχεται με την if είναι ψευδής.
  • Η δομή else if χρησιμοποιείται για να καθορίσει μια νέα συνθήκη ελέγχου, αν η προηγούμενη συνθήκη είναι ψευδής. Αν η νέα συνθήκη είναι αληθής, τότε το αντίστοιχο block κώδικα εκτελείται.
  • Η δομή switch χρησιμοποιείται για να καθορίσει πολλαπλές εναλλακτικές περιπτώσεις κώδικα που θα εκτελεστούν, ανάλογα με την τιμή μιας μεταβλητής ή εκφράσεως. Η switch αξιολογεί την τιμή και συγκρίνει την με διάφορες περιπτώσεις (cases), εκτελώντας τον αντίστοιχο κώδικα για την πρώτη αντιστοιχούσα περίπτωση.

Χρησιμοποιήστε την εντολή if για να καθορίσετε ένα μπλοκ κώδικα της Java που θα εκτελεστεί εάν μια συνθήκη είναι αληθής.

Σύνταξη:

if (condition) {
  // μπλοκ κώδικα που θα εκτελεστεί εάν η συνθήκη είναι αληθής
}

Αν η συνθήκη είναι αληθής, τότε το μπλοκ κώδικα που βρίσκεται μέσα στην εντολή if θα εκτελεστεί. Εάν η συνθήκη είναι ψευδής, τότε το μπλοκ κώδικα δεν θα εκτελεστεί και θα συνεχιστεί η εκτέλεση του κώδικα μετά την εντολή if.

Στο παράδειγμα:

int x = 35; // Δημιουργία μεταβλητής x και αρχικοποίησή της με την τιμή 35
int y = 13; // Δημιουργία μεταβλητής y και αρχικοποίησή της με την τιμή 13

if (x > y) { // Έλεγχος αν η μεταβλητή x είναι μεγαλύτερη από τη μεταβλητή y
    System.out.println("35 is greater than 13"); // Εκτύπωση μηνύματος στην κονσόλα αν η συνθήκη είναι αληθής
}

Ο παραπάνω κώδικας δημιουργεί δύο μεταβλητές x και y και τους αναθέτει τις τιμές 35 και 13 αντίστοιχα. Στη συνέχεια, εκτελείται ένας έλεγχος if για να ελεγχθεί αν η τιμή της μεταβλητής x είναι μεγαλύτερη από την τιμή της μεταβλητής y. Αν η συνθήκη είναι αληθής, τότε εκτελείται η εντολή εκτύπωσης System.out.println("35 is greater than 13"), η οποία εμφανίζει το μήνυμα “35 is greater than 13” στην κονσόλα.

Μπορούμε επίσης να ελέγξουμε μεταβλητές:

int age = 18; // Δημιουργία μεταβλητής age και ανάθεση της τιμής 18

if (age >= 18) {
    // Έλεγχος αν η μεταβλητή age είναι μεγαλύτερη ή ίση του 18
    System.out.println("You are old enough to vote!"); // Εκτύπωση μηνύματος
}

Ο παραπάνω κώδικας ορίζει μια μεταβλητή με όνομα age και τιμή 18. Στη συνέχεια, ελέγχει αν η τιμή της μεταβλητής age είναι μεγαλύτερη ή ίση του 18 μέσω της δομής ελέγχου if. Αν η συνθήκη είναι αληθής, τότε εκτελείται η εντολή System.out.println("You are old enough to vote!");, η οποία εκτυπώνει το μήνυμα “You are old enough to vote!” στην κονσόλα.

[adinserter block=”3″]

Χρησιμοποιήστε την εντολή else για να καθορίσετε ένα μπλοκ κώδικα της Java που θα εκτελεστεί εάν μια συνθήκη είναι ψευδής.

Σύνταξη:

if (condition) {
  // μπλοκ κώδικα που θα εκτελεστεί εάν η συνθήκη είναι αληθής
} else {
  // μπλοκ κώδικα που θα εκτελεστεί εάν η συνθήκη είναι ψευδής
}

Αν η συνθήκη είναι αληθής, τότε το μπλοκ κώδικα που βρίσκεται μέσα στην εντολή if θα εκτελεστεί. Αν η συνθήκη είναι ψευδής, τότε το μπλοκ κώδικα που βρίσκεται μέσα στην εντολή else θα εκτελεστεί.

Η εντολή else είναι προαιρετική και μπορεί να χρησιμοποιηθεί μόνο της ή μαζί με την εντολή if.

Στο παράδειγμα:

int age = 18;  // Δημιουργία μιας μεταβλητής με την τιμή 18 που αντιπροσωπεύει την ηλικία

if (age >= 18) {  // Έλεγχος αν η ηλικία είναι μεγαλύτερη ή ίση με 18
    System.out.println("You are old enough to vote!");  // Εκτύπωση μηνύματος αν η συνθήκη είναι αληθής
} else {
    System.out.println("You are not old enough to vote yet.");  // Εκτύπωση μηνύματος αν η συνθήκη είναι ψευδής
}

Ο κώδικας ορίζει μια μεταβλητή με όνομα age και της αναθέτει την τιμή 18, που αντιπροσωπεύει μια ηλικία. Στη συνέχεια, ο κώδικας ελέγχει αν η 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.”.

Χρησιμοποιήστε την εντολή else if για να καθορίσετε μια νέα συνθήκη εάν η πρώτη συνθήκη είναι ψευδής.

Σύνταξη:

if (condition1) {
  // μπλοκ κώδικα που θα εκτελεστεί εάν η συνθήκη 1 είναι αληθής
} else if (condition2) {
  // μπλοκ κώδικα που θα εκτελεστεί εάν η συνθήκη 1 είναι ψευδής και η συνθήκη 2 είναι αληθής
} else {
  // μπλοκ κώδικα που θα εκτελεστεί εάν η συνθήκη 1 και η συνθήκη 2 είναι ψευδείς
}

Αν η συνθήκη 1 είναι αληθής, τότε το μπλοκ κώδικα που βρίσκεται μέσα στην εντολή if θα εκτελεστεί. Αν η συνθήκη 1 είναι ψευδής, τότε θα ελεγχθεί η συνθήκη 2 και αν αυτή είναι αληθής, τότε το μπλοκ κώδικα που βρίσκεται μέσα στην εντολή else if θα εκτελεστεί. Αν και οι δύο συνθήκες είναι ψευδείς, τότε το μπλοκ κώδικα που βρίσκεται μέσα στην εντολή else θα εκτελεστεί.

Η εντολή else if είναι προαιρετική και μπορεί να χρησιμοποιηθεί πολλές φορές μετά την εντολή if, για να ελέγξετε περισσότερες από δύο συνθήκες.

[adinserter block=”4″]

Παράδειγμα:

int age = 18;

if (age >= 18) {
    // Εάν η ηλικία είναι μεγαλύτερη ή ίση των 18
    System.out.println("You are old enough to vote!");
} else if (age >= 16) {
    // Αλλιώς, εάν η ηλικία είναι μεγαλύτερη ή ίση των 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!” Αν η ηλικία είναι μεγαλύτερη ή ίση των 16, αλλά όχι 18, εμφανίζεται το μήνυμα “You are almost old enough to vote!” Σε όλες τις άλλες περιπτώσεις, δηλαδή όταν η ηλικία είναι μικρότερη των 16, εμφανίζεται το μήνυμα “You are not old enough to vote yet.”

Στην Java, μπορείτε να χρησιμοποιήσετε τη συντομογραφία if…else για να γράψετε μια συνθήκη if σε μία γραμμή.

Ο τελεστής τριών σημείων “? :” χρησιμοποιείται για να δηλώσετε τη συνθήκη. Εάν η συνθήκη είναι αληθής, η πρώτη τιμή μετά το “?” θα επιστραφεί. Εάν η συνθήκη είναι ψευδής, η δεύτερη τιμή μετά το “:” θα επιστραφεί.

Σύνταξη:

variable = (condition) ? expressionTrue : expressionFalse;

Παρακάτω είναι ένα παράδειγμα συντομογραφικού τρόπου if…else:

int age = 18; // Δημιουργία μεταβλητής age και αρχικοποίησή της με την τιμή 18
String result = (age >= 18) ? "You are old enough to vote" : "You are not old enough to vote"; // Έλεγχος της μεταβλητής age, αν είναι μεγαλύτερη ή ίση με 18, ανατίθεται η πρώτη τιμή, αλλιώς ανατίθεται η δεύτερη τιμή στη μεταβλητή result
System.out.println(result); // Εκτύπωση της τιμής της μεταβλητής result στην κονσόλα

Ο παραπάνω κώδικας ελέγχει την τιμή της μεταβλητής age και εκχωρεί στη μεταβλητή result μια απόδοση ανάλογα με το αν η τιμή της age είναι μεγαλύτερη ή ίση με 18. Αν η τιμή της age είναι μεγαλύτερη ή ίση με 18, τότε η τιμή της result θα είναι “You are old enough to vote” (Είστε αρκετά μεγάλος για να ψηφίσετε). Διαφορετικά, αν η τιμή της age είναι μικρότερη από 18, η τιμή της result θα είναι “You are not old enough to vote” (Δεν είστε αρκετά μεγάλος για να ψηφίσετε). Τέλος, η τιμή της result εκτυπώνεται στην κονσόλα.

12 Ιουνίου, 2023
top
error: Content is protected !!
Μετάβαση σε γραμμή εργαλείων