3.4 Η Δομή επιλογής If…Else στη γλώσσα C#

Η δομή επιλογής “if…else” στη γλώσσα C# χρησιμοποιείται για τον έλεγχο μιας συνθήκης και την εκτέλεση διαφορετικού κώδικα ανάλογα με την αληθή ή ψευδή τιμή της συνθήκης.

Ο γενικός τύπος της δομής είναι ο εξής:

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

Η συνθήκη είναι μια λογική έκφραση που εκτιμάται ως αληθής ή ψευδής. Αν η συνθήκη είναι αληθής, εκτελείται ο κώδικας που βρίσκεται μέσα στην περίπτωση του “if”. Αντίθετα, αν η συνθήκη είναι ψευδής, εκτελείται ο κώδικας που βρίσκεται μέσα στην περίπτωση του “else”.

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

Παράδειγμα:

using System;

class Program
{
    static void Main()
    {
        int a = 5; // Δημιουργία μεταβλητής a με τιμή 5
        int b = 10; // Δημιουργία μεταβλητής b με τιμή 10

        if (a < b) // Έλεγχος αν η μεταβλητή a είναι μικρότερη από τη μεταβλητή b
        {
            Console.WriteLine("Η μεταβλητή a είναι μικρότερη από τη μεταβλητή b.");
        }
        else if (a == b) // Έλεγχος αν οι μεταβλητές a και b είναι ίσες
        {
            Console.WriteLine("Οι μεταβλητές a και b είναι ίσες.");
        }
        else // Σε διαφορετική περίπτωση
        {
            Console.WriteLine("Η μεταβλητή a είναι μεγαλύτερη από τη μεταβλητή b.");
        }
    }
}

Ο κώδικας εκτελεί μια απλή σύγκριση μεταξύ δύο ακεραίων μεταβλητών a και b. Ακολουθεί μια περίπτωση-περιορισμός (if-else if-else) για να ελεγχθεί η σχέση μεταξύ των δύο μεταβλητών.

Αν η μεταβλητή a είναι μικρότερη από τη μεταβλητή b, τότε εκτυπώνεται το μήνυμα “Η μεταβλητή a είναι μικρότερη από τη μεταβλητή b.”.

Αν οι μεταβλητές a και b είναι ίσες, τότε εκτυπώνεται το μήνυμα “Οι μεταβλητές a και b είναι ίσες.”.

Σε όλες τις άλλες περιπτώσεις, που σημαίνει ότι η μεταβλητή a είναι μεγαλύτερη από τη μεταβλητή b, εκτυπώνεται το μήνυμα “Η μεταβλητή a είναι μεγαλύτερη από τη μεταβλητή b.”.

Ο κώδικας αυτός δείχνει πώς μπορούμε να χρησιμοποιήσουμε τη συνθήκη if-else για να πάρουμε αποφάσεις με βάση τις συνθήκες στη γλώσσα προγραμματισμού C#.

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

using System;

class Program
{
    static void Main()
    {
        int age = 25;

        // Έλεγχος της ηλικίας
        if (age < 18)
        {
            Console.WriteLine("Είστε ανήλικος.");
        }
        else
        {
            Console.WriteLine("Είστε ενήλικας.");
        }
    }
}

Ο παραπάνω κώδικας ελέγχει την τιμή μιας μεταβλητής με όνομα “age” και εκτελεί διαφορετικές ενέργειες ανάλογα με την τιμή αυτής της μεταβλητής. Αρχικά, ορίζεται η μεταβλητή “age” με την τιμή 25.

Στη συνέχεια, χρησιμοποιείται η δομή ελέγχου “if-else” για να ελεγχθεί η τιμή της μεταβλητής “age”. Αν η τιμή είναι μικρότερη από 18, τότε εκτελείται η εντολή Console.WriteLine("Είστε ανήλικος.");, η οποία εκτυπώνει το μήνυμα “Είστε ανήλικος.” στην οθόνη.

Αν η τιμή της μεταβλητής “age” δεν είναι μικρότερη από 18, τότε εκτελείται η εντολή Console.WriteLine("Είστε ενήλικας.");, η οποία εκτυπώνει το μήνυμα “Είστε ενήλικας.” στην οθόνη.

Έτσι, ανάλογα με την τιμή της μεταβλητής “age”, ο κώδικας εκτελεί την αντίστοιχη εκτύπωση μηνύματος για το αν ο χρήστης είναι ανήλικος ή ενήλικας.

Όταν εκτελεστεί ο παραπάνω κώδικας και η μεταβλητή “age” έχει την τιμή 25, το αποτέλεσμα εκτέλεσης θα είναι η εκτύπωση του μηνύματος “Είστε ενήλικας.” στην οθόνη.

Αυτό συμβαίνει επειδή η τιμή της μεταβλητής “age” (25) είναι μεγαλύτερη από 18, οπότε εκτελείται η εντολή που βρίσκεται στο μπλοκ του else, δηλαδή η εντολή Console.WriteLine("Είστε ενήλικας."); που εκτυπώνει το μήνυμα “Είστε ενήλικας.” στην οθόνη.

Έτσι, το αποτέλεσμα εκτέλεσης του προγράμματος θα είναι:

Είστε ενήλικας.

[adinserter block=”2″]

Παράδειγμα:

using System;

class Program
{
    static void Main()
    {
        int number = 7;

        // Έλεγχος αν ο αριθμός είναι άρτιος ή περιττός
        if (number % 2 == 0)
        {
            Console.WriteLine("Ο αριθμός είναι άρτιος.");
        }
        else
        {
            Console.WriteLine("Ο αριθμός είναι περιττός.");
        }
    }
}

Ο παραπάνω κώδικας ελέγχει αν ο αριθμός που αποθηκεύεται στη μεταβλητή number είναι άρτιος ή περιττός. Ακολουθεί την εξής λογική:

  1. Αρχικοποιείται η μεταβλητή number με την τιμή 7.
  2. Εκτελείται ο έλεγχος if (number % 2 == 0), που ελέγχει αν ο αριθμός number διαιρείται ακριβώς με το 2 (δηλαδή είναι άρτιος). Αν η συνθήκη είναι αληθής, τότε εκτελείται ο κώδικας μέσα στο μπλοκ του if.
  3. Αν η συνθήκη του if είναι ψευδής, τότε εκτελείται ο κώδικας μέσα στο μπλοκ του else.
  4. Στην περίπτωση μας, εφόσον ο αριθμός number είναι 7 και δεν διαιρείται ακριβώς με το 2, εκτελείται ο κώδικας μέσα στο μπλοκ του else.
  5. Εμφανίζεται το μήνυμα “Ο αριθμός είναι περιττός.” στην έξοδο της κονσόλας.

Συνολικά, ο κώδικας εκτυπώνει το κατάλληλο μήνυμα ανάλογα με το αν ο αριθμός number είναι άρτιος ή περιττός.

Το αποτέλεσμα εκτέλεσης του παραπάνω κώδικα θα είναι:

Ο αριθμός είναι περιττός.

Καθώς ο αριθμός που έχει αποθηκευτεί στη μεταβλητή number είναι 7, που είναι ένας περιττός αριθμός, η συνθήκη number % 2 == 0 είναι ψευδής. Συνεπώς, εκτελείται ο κώδικας μέσα στο μπλοκ του else, και εμφανίζεται το μήνυμα “Ο αριθμός είναι περιττός.” στην έξοδο της κονσόλας.

[adinserter block=”4″]

Παράδειγμα:

using System;

class Program
{
    static void Main()
    {
        int score = 80; // Αρχικοποίηση της μεταβλητής score με την τιμή 80

        if (score >= 90) // Έλεγχος αν η τιμή της μεταβλητής score είναι μεγαλύτερη ή ίση με 90
        {
            Console.WriteLine("Εξαιρετική απόδοση!"); // Εκτύπωση μηνύματος "Εξαιρετική απόδοση!"
        }
        else if (score >= 70) // Έλεγχος αν η τιμή της μεταβλητής score είναι μεγαλύτερη ή ίση με 70
        {
            Console.WriteLine("Καλή απόδοση."); // Εκτύπωση μηνύματος "Καλή απόδοση."
        }
        else
        {
            Console.WriteLine("Χρειάζεται βελτίωση."); // Εκτύπωση μηνύματος "Χρειάζεται βελτίωση."
        }
    }
}

Ο παραπάνω κώδικας σε C# ελέγχει την τιμή της μεταβλητής score και εκτυπώνει ανάλογα μηνύματα, ανάλογα με την τιμή που έχει η μεταβλητή.

Αρχικά, ορίζεται η μεταβλητή score με την τιμή 80. Έπειτα, ξεκινάει η δομή ελέγχου if-else.

Αν η τιμή της μεταβλητής score είναι μεγαλύτερη ή ίση με 90, τότε εκτελείται η εντολή Console.WriteLine("Εξαιρετική απόδοση!"); και εκτυπώνεται το μήνυμα “Εξαιρετική απόδοση!”.

Αν η τιμή της μεταβλητής score είναι μεγαλύτερη ή ίση με 70 αλλά μικρότερη από 90, τότε εκτελείται η εντολή Console.WriteLine("Καλή απόδοση."); και εκτυπώνεται το μήνυμα “Καλή απόδοση.”.

Αν η τιμή της μεταβλητής score είναι μικρότερη από 70, τότε εκτελείται η εντολή Console.WriteLine("Χρειάζεται βελτίωση."); και εκτυπώνεται το μήνυμα “Χρειάζεται βελτίωση.”.

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

Όταν εκτελεστεί ο παραπάνω κώδικας με την αρχική τιμή score = 80, θα εμφανιστεί το μήνυμα “Καλή απόδοση.” στην έξοδο της κονσόλας. Αυτό συμβαίνει επειδή η συνθήκη score >= 70 είναι αληθής, αλλά η συνθήκη score >= 90 είναι ψευδής. Άρα η πρώτη else if δομή εκτελείται και εκτυπώνεται το αντίστοιχο μήνυμα.

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

Στη γλώσσα C#, υπάρχει επίσης ένα συντομευμένο if…else, γνωστό και ως τριαδικός τελεστής (ternary operator), καθώς αποτελείται από τρεις τελεστέους. Χρησιμοποιείται για να αντικαταστήσει πολλαπλές γραμμές κώδικα με μία μόνο γραμμή. Συχνά χρησιμοποιείται για την αντικατάσταση απλών δηλώσεων if…else:

Η σύνταξη του τριαδικού τελεστή είναι η εξής:

variable = (condition) ? expression1 : expression2;

Αν η συνθήκη condition είναι αληθής, τότε εκχωρείται η τιμή της expression1 στη μεταβλητή variable. Αν η συνθήκη είναι ψευδής, τότε εκχωρείται η τιμή της expression2 στη μεταβλητή variable.

Παράδειγμα:

int num = 7;
string result = (num % 2 == 0) ? "Ο αριθμός είναι άρτιος." : "Ο αριθμός είναι περιττός.";
Console.WriteLine(result);

Σε αυτό το παράδειγμα, χρησιμοποιούμε τον τριαδικό τελεστή για να ελέγξουμε εάν ο αριθμός num είναι άρτιος ή περιττός. Η συνθήκη num % 2 == 0 αξιολογείται και αν είναι αληθής, εκχωρείται η τιμή “Ο αριθμός είναι άρτιος.” στη μεταβλητή result. Αν η συνθήκη είναι ψευδής, εκχωρείται η τιμή “Ο αριθμός είναι περιττός.” στη μεταβλητή result. Έπειτα, εμφανίζουμε την τιμή της μεταβλητής result με τη χρήση της εντολής Console.WriteLine().

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

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