Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.

3.5 Η δομή επιλογής Switch στην γλώσσα C#

Η δήλωση switch (switch statement) χρησιμοποιείται για να επιλέξει έναν από πολλούς κώδικες που θα εκτελεστούν. Σας επιτρέπει να εκτελέσετε διαφορετικό κώδικα ανάλογα με την τιμή μιας μεταβλητής ή μια έκφραση.

Η σύνταξη της δήλωσης switch είναι η εξής:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
switch (expression)
{
case value1:
// Κώδικας που εκτελείται αν η expression έχει την τιμή value1
break;
case value2:
// Κώδικας που εκτελείται αν η expression έχει την τιμή value2
break;
case value3:
// Κώδικας που εκτελείται αν η expression έχει την τιμή value3
break;
default:
// Κώδικας που εκτελείται αν η expression δεν ταιριάζει με καμία από τις παραπάνω τιμές
break;
}
switch (expression) { case value1: // Κώδικας που εκτελείται αν η expression έχει την τιμή value1 break; case value2: // Κώδικας που εκτελείται αν η expression έχει την τιμή value2 break; case value3: // Κώδικας που εκτελείται αν η expression έχει την τιμή value3 break; default: // Κώδικας που εκτελείται αν η expression δεν ταιριάζει με καμία από τις παραπάνω τιμές break; }
switch (expression)
{
    case value1:
        // Κώδικας που εκτελείται αν η expression έχει την τιμή value1
        break;
    case value2:
        // Κώδικας που εκτελείται αν η expression έχει την τιμή value2
        break;
    case value3:
        // Κώδικας που εκτελείται αν η expression έχει την τιμή value3
        break;
    default:
        // Κώδικας που εκτελείται αν η expression δεν ταιριάζει με καμία από τις παραπάνω τιμές
        break;
}

Η expression είναι η μεταβλητή ή η έκφραση που ελέγχεται. Αν η τιμή της expression ταιριάζει με μία από τις τιμές των case, τότε εκτελείται ο αντίστοιχος κώδικας μέσα στο αντίστοιχο μπλοκ case. Η δήλωση break χρησιμοποιείται για να τερματίσει την εκτέλεση του κώδικα του κάθε case. Αν η τιμή της expression δεν ταιριάζει με καμία από τις τιμές των case, τότε εκτελείται ο κώδικας μέσα στο μπλοκ default.

Παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
using System;
class Program
{
static void Main()
{
int day = 3; // Ορισμός μιας μεταβλητής day και ανάθεση της τιμής 3
switch (day) // Έναρξη δομής switch με βάση τη μεταβλητή day
{
case 1: // Αν η τιμή της day είναι 1
Console.WriteLine("Δευτέρα"); // Εκτύπωση του κειμένου "Δευτέρα"
break; // Έξοδος από τη δομή switch
case 2: // Αν η τιμή της day είναι 2
Console.WriteLine("Τρίτη"); // Εκτύπωση του κειμένου "Τρίτη"
break; // Έξοδος από τη δομή switch
case 3: // Αν η τιμή της day είναι 3
Console.WriteLine("Τετάρτη"); // Εκτύπωση του κειμένου "Τετάρτη"
break; // Έξοδος από τη δομή switch
case 4: // Αν η τιμή της day είναι 4
Console.WriteLine("Πέμπτη"); // Εκτύπωση του κειμένου "Πέμπτη"
break; // Έξοδος από τη δομή switch
case 5: // Αν η τιμή της day είναι 5
Console.WriteLine("Παρασκευή"); // Εκτύπωση του κειμένου "Παρασκευή"
break; // Έξοδος από τη δομή switch
default: // Αν η τιμή της day δεν αντιστοιχεί σε καμία από τις προηγούμενες περιπτώσεις
Console.WriteLine("Σαββατοκύριακο"); // Εκτύπωση του κειμένου "Σαββατοκύριακο"
break; // Έξοδος από τη δομή switch
}
}
}
using System; class Program { static void Main() { int day = 3; // Ορισμός μιας μεταβλητής day και ανάθεση της τιμής 3 switch (day) // Έναρξη δομής switch με βάση τη μεταβλητή day { case 1: // Αν η τιμή της day είναι 1 Console.WriteLine("Δευτέρα"); // Εκτύπωση του κειμένου "Δευτέρα" break; // Έξοδος από τη δομή switch case 2: // Αν η τιμή της day είναι 2 Console.WriteLine("Τρίτη"); // Εκτύπωση του κειμένου "Τρίτη" break; // Έξοδος από τη δομή switch case 3: // Αν η τιμή της day είναι 3 Console.WriteLine("Τετάρτη"); // Εκτύπωση του κειμένου "Τετάρτη" break; // Έξοδος από τη δομή switch case 4: // Αν η τιμή της day είναι 4 Console.WriteLine("Πέμπτη"); // Εκτύπωση του κειμένου "Πέμπτη" break; // Έξοδος από τη δομή switch case 5: // Αν η τιμή της day είναι 5 Console.WriteLine("Παρασκευή"); // Εκτύπωση του κειμένου "Παρασκευή" break; // Έξοδος από τη δομή switch default: // Αν η τιμή της day δεν αντιστοιχεί σε καμία από τις προηγούμενες περιπτώσεις Console.WriteLine("Σαββατοκύριακο"); // Εκτύπωση του κειμένου "Σαββατοκύριακο" break; // Έξοδος από τη δομή switch } } }
using System;

class Program
{
    static void Main()
    {
        int day = 3; // Ορισμός μιας μεταβλητής day και ανάθεση της τιμής 3

        switch (day) // Έναρξη δομής switch με βάση τη μεταβλητή day
        {
            case 1: // Αν η τιμή της day είναι 1
                Console.WriteLine("Δευτέρα"); // Εκτύπωση του κειμένου "Δευτέρα"
                break; // Έξοδος από τη δομή switch
            case 2: // Αν η τιμή της day είναι 2
                Console.WriteLine("Τρίτη"); // Εκτύπωση του κειμένου "Τρίτη"
                break; // Έξοδος από τη δομή switch
            case 3: // Αν η τιμή της day είναι 3
                Console.WriteLine("Τετάρτη"); // Εκτύπωση του κειμένου "Τετάρτη"
                break; // Έξοδος από τη δομή switch
            case 4: // Αν η τιμή της day είναι 4
                Console.WriteLine("Πέμπτη"); // Εκτύπωση του κειμένου "Πέμπτη"
                break; // Έξοδος από τη δομή switch
            case 5: // Αν η τιμή της day είναι 5
                Console.WriteLine("Παρασκευή"); // Εκτύπωση του κειμένου "Παρασκευή"
                break; // Έξοδος από τη δομή switch
            default: // Αν η τιμή της day δεν αντιστοιχεί σε καμία από τις προηγούμενες περιπτώσεις
                Console.WriteLine("Σαββατοκύριακο"); // Εκτύπωση του κειμένου "Σαββατοκύριακο"
                break; // Έξοδος από τη δομή switch
        }
    }
}

[adinserter block=”2″]

Ο παραπάνω κώδικας εκτελεί την ακόλουθη λειτουργία:

  1. Δημιουργείται μια μεταβλητή day και της ανατίθεται η τιμή 3.
  2. Έπειτα, χρησιμοποιείται η δομή επιλογής switch για να ελεγχθεί η τιμή της μεταβλητής day.
  3. Αν η τιμή της day είναι 1, εκτυπώνεται το κείμενο “Δευτέρα”.
  4. Αν η τιμή της day είναι 2, εκτυπώνεται το κείμενο “Τρίτη”.
  5. Αν η τιμή της day είναι 3, εκτυπώνεται το κείμενο “Τετάρτη”.
  6. Αν η τιμή της day είναι 4, εκτυπώνεται το κείμενο “Πέμπτη”.
  7. Αν η τιμή της day είναι 5, εκτυπώνεται το κείμενο “Παρασκευή”.
  8. Αν η τιμή της day δεν αντιστοιχεί σε καμία από τις προηγούμενες περιπτώσεις, εκτυπώνεται το κείμενο “Σαββατοκύριακο”.
  9. Η εκτέλεση του προγράμματος ολοκληρώνεται.

Έτσι, ο κώδικας ελέγχει την τιμή της μεταβλητής day και εκτυπώνει την αντίστοιχη ημέρα της εβδομάδας στην οθόνη, με βάση την τιμή που έχει ανατεθεί στην day. Στο παράδειγμα, θα εκτυπωθεί το κείμενο “Τετάρτη”.

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

Όταν η γλώσσα C# φτάνει σε μια δήλωση break, διακόπτει την εκτέλεση του block switch.

Αυτό έχει ως αποτέλεσμα τη διακοπή της εκτέλεσης επιπλέον κώδικα και των δοκιμών case μέσα στο block.

Όταν βρεθεί μια αντιστοιχία (match) και ολοκληρωθεί η εργασία, είναι καιρός για μια δήλωση break. Δεν υπάρχει ανάγκη για περισσότερες δοκιμές.

Η λέξη-κλειδί default είναι προαιρετική και καθορίζει κάποιον κώδικα που θα εκτελεστεί αν δεν υπάρχει αντιστοιχία (match) στα case:

Όταν η γλώσσα C# δεν βρίσκει καμία αντιστοιχία (match) στα case εντός της δήλωσης switch, τότε η εκτέλεση μεταφέρεται στο μπλοκ default, αν υπάρχει. Ο κώδικας μέσα στο μπλοκ default εκτελείται και μπορεί να περιλαμβάνει τις απαραίτητες ενέργειες που θέλουμε να πραγματοποιήσουμε σε αυτήν την περίπτωση.

Παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
using System;
class Program
{
static void Main()
{
int day = 7;
// Χρησιμοποιούμε την εντολή switch για να ελέγξουμε την τιμή της μεταβλητής day
switch (day)
{
case 1:
Console.WriteLine("Δευτέρα");
break;
case 2:
Console.WriteLine("Τρίτη");
break;
case 3:
Console.WriteLine("Τετάρτη");
break;
case 4:
Console.WriteLine("Πέμπτη");
break;
case 5:
Console.WriteLine("Παρασκευή");
break;
default:
Console.WriteLine("Μη έγκυρη ημέρα");
break;
}
}
}
using System; class Program { static void Main() { int day = 7; // Χρησιμοποιούμε την εντολή switch για να ελέγξουμε την τιμή της μεταβλητής day switch (day) { case 1: Console.WriteLine("Δευτέρα"); break; case 2: Console.WriteLine("Τρίτη"); break; case 3: Console.WriteLine("Τετάρτη"); break; case 4: Console.WriteLine("Πέμπτη"); break; case 5: Console.WriteLine("Παρασκευή"); break; default: Console.WriteLine("Μη έγκυρη ημέρα"); break; } } }
using System;

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

        // Χρησιμοποιούμε την εντολή switch για να ελέγξουμε την τιμή της μεταβλητής day
        switch (day)
        {
            case 1:
                Console.WriteLine("Δευτέρα");
                break;
            case 2:
                Console.WriteLine("Τρίτη");
                break;
            case 3:
                Console.WriteLine("Τετάρτη");
                break;
            case 4:
                Console.WriteLine("Πέμπτη");
                break;
            case 5:
                Console.WriteLine("Παρασκευή");
                break;
            default:
                Console.WriteLine("Μη έγκυρη ημέρα");
                break;
        }

    }
}

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

  1. Αρχικά, ορίζεται η μεταβλητή day και της ανατίθεται η τιμή 7.
  2. Στη συνέχεια, χρησιμοποιείται η εντολή switch για να ελεγχθεί η τιμή της μεταβλητής day.
  3. Έχουμε πέντε πιθανές περιπτώσεις (case) για τις τιμές 1, 2, 3, 4 και 5, που αντιστοιχούν στις καθημερινές της εβδομάδας.
  4. Αν η τιμή της day ταιριάζει με ένα από τα case, τότε εκτελείται η αντίστοιχη εντολή εκτύπωσης με τη χρήση της Console.WriteLine(). Για παράδειγμα, αν η τιμή της day είναι 1, θα εκτυπωθεί το μήνυμα “Δευτέρα”.
  5. Αν η τιμή της day δεν ταιριάζει με κανένα από τα case, τότε εκτελείται η εντολή default, η οποία εκτυπώνει το μήνυμα “Μη έγκυρη ημέρα”.

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

Όταν εκτελέσετε τον παραπάνω κώδικα, αν η τιμή της μεταβλητής day είναι 7, τότε θα εμφανιστεί το ακόλουθο αποτέλεσμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Μη έγκυρη ημέρα
Μη έγκυρη ημέρα
Μη έγκυρη ημέρα

Αυτό συμβαίνει διότι η τιμή 7 της μεταβλητής day δεν αντιστοιχεί σε καμία από τις περιπτώσεις (case) που ορίστηκαν στην switch δομή. Έτσι, εκτελείται η εντολή default, η οποία εκτυπώνει το μήνυμα “Μη έγκυρη ημέρα”.

Σημείωση: Η δήλωση default μπορεί να είναι παρούσα σε μια δήλωση switch, αλλά δεν είναι υποχρεωτική. Εάν δεν παρέχεται κάποια δήλωση default και δεν υπάρχει αντιστοιχία με κανένα case, τότε η εκτέλεση του switch θα προχωρήσει στο επόμενο κομμάτι κώδικα μετά το switch.

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