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.

6.5 Ο τύπος enum στην C

Μια δομή που χρησιμοποιείται συχνά στη C είναι τα enums (αναφορικά με τον τύπο του enum). Ένα enum αντιπροσωπεύει ένα σύνολο από σταθερές τιμές.

Για να δημιουργήσετε ένα enum, χρησιμοποιήστε τη λέξη-κλειδί enum, ακολουθούμενη από το όνομα του enum και διαχωρίστε τα αντικείμενα του enum με κόμμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
enum colors {
red,
green,
blue
};
enum colors { red, green, blue };
enum colors {
    red,
    green,
    blue
};

Στο παραπάνω παράδειγμα, δημιουργούμε ένα enum με το όνομα “colors”, και περιέχει τα αντικείμενα “red”, “green” και “blue”.

Προσέξτε ότι δεν αναθέτουμε τιμές στα αντικείμενα του enum. Η τιμή του κάθε αντικειμένου υποδηλώνει τη θέση του στο σύνολο, με το πρώτο αντικείμενο να έχει τιμή 0, το δεύτερο 1 κλπ.

Για να έχουμε πρόσβαση στο enum, πρέπει να δημιουργήσουμε μια μεταβλητή του.

Μέσα στη main(), ορίστε τη λέξη-κλειδί enum, ακολουθούμενη από το όνομα του enum (Level) και μετά το όνομα της μεταβλητής του enum (στο παρακάτω παράδειγμα είναι myVar):

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
enum Level {
Low,
Medium,
High
};
int main() {
enum Level myVar = Medium;
printf("%d", myVar);
return 0;
}
enum Level { Low, Medium, High }; int main() { enum Level myVar = Medium; printf("%d", myVar); return 0; }
enum Level {
    Low,
    Medium,
    High
};

int main() {
    enum Level myVar = Medium;
    printf("%d", myVar);
    return 0;
}

Στο παραπάνω παράδειγμα, δημιουργούμε ένα enum με το όνομα “Level”, και περιέχει τα αντικείμενα “Low”, “Medium” και “High”. Στη συνέχεια, δημιουργούμε μια μεταβλητή myVar του enum με την τιμή Medium, και στη συνέχεια την εκτυπώνουμε.

[adinserter block=”2″]

Αν τρέξετε τον κώδικα, θα εμφανιστεί η τιμή της μεταβλητής myVar, η οποία είναι ίση με 1 (αντιστοιχεί στο αντικείμενο Medium του enum).

Τώρα που έχετε δημιουργήσει μια μεταβλητή enum (myVar), μπορείτε να της αναθέσετε μια τιμή.

Η τιμή που ανατίθεται πρέπει να είναι ένα από τα αντικείμενα μέσα στο enum (LOW, MEDIUM ή HIGH):

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
enum Level {
LOW,
MEDIUM,
HIGH
};
int main() {
enum Level myVar;
myVar = MEDIUM;
printf("%d", myVar);
return 0;
}
enum Level { LOW, MEDIUM, HIGH }; int main() { enum Level myVar; myVar = MEDIUM; printf("%d", myVar); return 0; }
enum Level {
    LOW,
    MEDIUM,
    HIGH
};

int main() {
    enum Level myVar;
    myVar = MEDIUM;
    printf("%d", myVar);
    return 0;
}

Στο παραπάνω παράδειγμα, δημιουργούμε ένα enum με το όνομα “Level”, και περιέχει τα αντικείμενα “LOW”, “MEDIUM” και “HIGH”. Στη συνέχεια, δημιουργούμε μια μεταβλητή myVar του enum και της αναθέτουμε την τιμή MEDIUM, και στη συνέχεια την εκτυπώνουμε.

Αν τρέξετε τον κώδικα, θα εμφανιστεί η τιμή της μεταβλητής myVar, η οποία είναι ίση με 1 (αντιστοιχεί στο αντικείμενο MEDIUM του enum).

Όπως ξέρετε, το πρώτο αντικείμενο ενός enum έχει την τιμή 0. Το δεύτερο έχει την τιμή 1, και ούτω καθεξής.

Για να καθιστούν περισσότερο νόημα στις τιμές, μπορείτε εύκολα να τις αλλάξετε:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
enum Level {
LOW = 10,
MEDIUM = 50,
HIGH = 100
};
enum Level { LOW = 10, MEDIUM = 50, HIGH = 100 };
enum Level {
    LOW = 10,
    MEDIUM = 50,
    HIGH = 100
};

Στο παραπάνω παράδειγμα, το πρώτο αντικείμενο έχει την τιμή 10, το δεύτερο έχει την τιμή 50, και το τρίτο έχει την τιμή 100. Στη συνέχεια, μπορείτε να δώσετε σε μια μεταβλητή του enum μία από αυτές τις τιμές:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
enum Level myVar;
myVar = MEDIUM;
enum Level myVar; myVar = MEDIUM;
enum Level myVar;
myVar = MEDIUM;

Στο παραπάνω παράδειγμα, η τιμή της μεταβλητής myVar είναι MEDIUM, η οποία έχει την τιμή 50 καθώς είναι το δεύτερο αντικείμενο του enum.

Σημειώστε ότι εάν αναθέσετε μια τιμή σε ένα συγκεκριμένο αντικείμενο, τα επόμενα αντικείμενα θα ενημερώσουν αυτόματα τους αριθμούς τους:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
enum Level {
LOW = 10,
MEDIUM, // Will have the value 11
HIGH // Will have the value 12
};
enum Level { LOW = 10, MEDIUM, // Will have the value 11 HIGH // Will have the value 12 };
enum Level {
    LOW = 10,
    MEDIUM,    // Will have the value 11
    HIGH       // Will have the value 12
};

Στο παραπάνω παράδειγμα, το πρώτο αντικείμενο έχει την τιμή 10, και οι επόμενα θα έχουν τις τιμές 11 και 12 αντίστοιχα, καθώς δεν ανατίθεται εξαρχής κάποια τιμή σε αυτά.

Τα enums χρησιμοποιούνται συχνά σε switch statements για να ελέγξουν τις αντίστοιχες τιμές:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <stdio.h>
enum Weekday {
MON,
TUE,
WED,
THU,
FRI,
SAT,
SUN
};
int main() {
enum Weekday today = FRI;
switch (today) {
case MON:
printf("Today is Monday\n");
break;
case TUE:
printf("Today is Tuesday\n");
break;
case WED:
printf("Today is Wednesday\n");
break;
case THU:
printf("Today is Thursday\n");
break;
case FRI:
printf("Today is Friday\n");
break;
case SAT:
printf("Today is Saturday\n");
break;
case SUN:
printf("Today is Sunday\n");
break;
default:
printf("Invalid weekday\n");
break;
}
return 0;
}
#include <stdio.h> enum Weekday { MON, TUE, WED, THU, FRI, SAT, SUN }; int main() { enum Weekday today = FRI; switch (today) { case MON: printf("Today is Monday\n"); break; case TUE: printf("Today is Tuesday\n"); break; case WED: printf("Today is Wednesday\n"); break; case THU: printf("Today is Thursday\n"); break; case FRI: printf("Today is Friday\n"); break; case SAT: printf("Today is Saturday\n"); break; case SUN: printf("Today is Sunday\n"); break; default: printf("Invalid weekday\n"); break; } return 0; }
#include <stdio.h>

enum Weekday {
    MON,
    TUE,
    WED,
    THU,
    FRI,
    SAT,
    SUN
};

int main() {
    enum Weekday today = FRI;

    switch (today) {
        case MON:
            printf("Today is Monday\n");
            break;
        case TUE:
            printf("Today is Tuesday\n");
            break;
        case WED:
            printf("Today is Wednesday\n");
            break;
        case THU:
            printf("Today is Thursday\n");
            break;
        case FRI:
            printf("Today is Friday\n");
            break;
        case SAT:
            printf("Today is Saturday\n");
            break;
        case SUN:
            printf("Today is Sunday\n");
            break;
        default:
            printf("Invalid weekday\n");
            break;
    }

    return 0;
}

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

Δωρεα μεσω Paypal

Για την κάλυψη αναγκών φιλοξενίας και δημιουργίας περιεχομένου.

κατηγοριες μαθηματων

Ιστορικο ενοτητων

top
error: Content is protected !!
Μετάβαση σε γραμμή εργαλείων