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.

2.6 Οι boolean τιμές στην C

Στην C, οι boolean τιμές αναπαρίστανται με τον τύπο δεδομένων bool, ο οποίος μπορεί να πάρει μια από τις δύο τιμές: true (αληθής) ή false (ψευδής). Η τιμή true αντιπροσωπεύει την αλήθεια, ενώ η τιμή false αντιπροσωπεύει το ψεύδος.

Για παράδειγμα, μπορούμε να δηλώσουμε μια μεταβλητή bool με την τιμή true ή false και να την χρησιμοποιήσουμε για τον έλεγχο μιας συνθήκης:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <stdbool.h>
#include <stdio.h>
int main() {
bool isCodingFun = true;
if (isCodingFun) {
printf("Coding is fun!");
} else {
printf("Coding is not fun.");
}
return 0;
}
#include <stdbool.h> #include <stdio.h> int main() { bool isCodingFun = true; if (isCodingFun) { printf("Coding is fun!"); } else { printf("Coding is not fun."); } return 0; }
#include <stdbool.h>
#include <stdio.h>

int main() {
  bool isCodingFun = true;

  if (isCodingFun) {
    printf("Coding is fun!");
  } else {
    printf("Coding is not fun.");
  }

  return 0;
}

Στο παραπάνω παράδειγμα, δηλώνουμε μια μεταβλητή isCodingFun ως true και στη συνέχεια ελέγχουμε αν η τιμή της είναι true ή false με έναν έλεγχο if. Επειδή η τιμή της είναι true, θα εκτυπώσουμε το μήνυμα “Coding is fun!”.

Η bool δεν είναι ενσωματωμένος τύπος δεδομένων στη C πριν το πρότυπο C99, και για να χρησιμοποιήσετε μεταβλητές bool στη C, πρέπει να εισαγάγετε την επικεφαλίδα stdbool.h.

Με τη χρήση της εντολής #include , ο τύπος δεδομένων bool ορίζεται ως ένας τύπος που μπορεί να έχει μόνο δύο τιμές: true (αληθής) ή false (ψευδής).

Παράδειγμα κώδικα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <stdbool.h>
#include <stdio.h>
int main() {
bool isCodingFun = true;
if (isCodingFun) {
printf("Coding is fun!");
} else {
printf("Coding is not fun.");
}
return 0;
}
#include <stdbool.h> #include <stdio.h> int main() { bool isCodingFun = true; if (isCodingFun) { printf("Coding is fun!"); } else { printf("Coding is not fun."); } return 0; }
#include <stdbool.h>
#include <stdio.h>

int main() {
  bool isCodingFun = true;

  if (isCodingFun) {
    printf("Coding is fun!");
  } else {
    printf("Coding is not fun.");
  }

  return 0;
}

Στο παραπάνω παράδειγμα, δηλώνουμε μια μεταβλητή isCodingFun ως true και στη συνέχεια ελέγχουμε αν η τιμή της είναι true ή false με έναν έλεγχο if. Επειδή η τιμή της είναι true, θα εκτυπώσουμε το μήνυμα “Coding is fun!”.

Στη C, οι τιμές boolean επιστρέφονται ως ακέραιοι:

Το 1 (ή οποιοδήποτε άλλο μη μηδενικό ακέραιο) αντιπροσωπεύει την τιμή true
Το 0 αντιπροσωπεύει την τιμή false
Για να εκτυπώσετε μια boolean τιμή, πρέπει να χρησιμοποιήσετε τον format specifier %d:

Παράδειγμα κώδικα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <stdio.h>
#include <stdbool.h>
int main() {
bool isProgrammingFun = true;
bool isFishTasty = false;
printf("Programming is fun: %d\n", isProgrammingFun);
printf("Fish is tasty: %d\n", isFishTasty);
return 0;
}
#include <stdio.h> #include <stdbool.h> int main() { bool isProgrammingFun = true; bool isFishTasty = false; printf("Programming is fun: %d\n", isProgrammingFun); printf("Fish is tasty: %d\n", isFishTasty); return 0; }
#include <stdio.h>
#include <stdbool.h>

int main() {
  bool isProgrammingFun = true;
  bool isFishTasty = false;

  printf("Programming is fun: %d\n", isProgrammingFun);
  printf("Fish is tasty: %d\n", isFishTasty);

  return 0;
}

Στο παραπάνω παράδειγμα, δηλώνουμε δύο μεταβλητές boolean: isProgrammingFun και isFishTasty. Χρησιμοποιώντας την printf() συνάρτηση και το format specifier %d, εκτυπώνουμε τις boolean τιμές και τις αντίστοιχες ακέραιες τιμές τους (1 ή 0).

[adinserter block=”2″]

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Programming is fun: 1
Fish is tasty: 0
Programming is fun: 1 Fish is tasty: 0
Programming is fun: 1
Fish is tasty: 0

Αυτό συμβαίνει διότι η μεταβλητή isProgrammingFun έχει τιμή true, η οποία αντιστοιχεί στον ακέραιο 1, ενώ η μεταβλητή isFishTasty έχει τιμή false, η οποία αντιστοιχεί στον ακέραιο 0.

Το παρακάτω παράδειγμα χρησιμοποιεί τον τελεστή μεγαλύτερο από (>) για να συγκρίνει δύο αριθμούς και να εκτυπώσει αν ο πρώτος αριθμός είναι μεγαλύτερος από τον δεύτερο:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <stdio.h>
int main() {
int x = 5;
int y = 3;
if (x > y) {
printf("x is greater than y\n");
}
return 0;
}
#include <stdio.h> int main() { int x = 5; int y = 3; if (x > y) { printf("x is greater than y\n"); } return 0; }
#include <stdio.h>

int main() {
  int x = 5;
  int y = 3;

  if (x > y) {
    printf("x is greater than y\n");
  }

  return 0;
}

Το πρόγραμμα θα εκτυπώσει “x is greater than y”, διότι ο αριθμός x έχει την τιμή 5, η οποία είναι μεγαλύτερη από την τιμή του αριθμού y, που είναι 3.

Ο τελεστής μεγαλύτερο από (>) χρησιμοποιείται για να συγκρίνει δύο αριθμούς ή μεταβλητές. Αν ο πρώτος αριθμός είναι μεγαλύτερος από τον δεύτερο, τότε η συνθήκη είναι αληθής και η εντολή που ακολουθεί την συνθήκη εκτελείται.

Στο παράδειγμα που δώσαμε, έχουμε δηλώσει δύο μεταβλητές x και y και τους έχουμε αναθέσει τις τιμές 5 και 3 αντίστοιχα. Στη συνέχεια, χρησιμοποιούμε τον τελεστή μεγαλύτερο από (>) στην συνθήκη της εντολής if, για να συγκρίνουμε τις δύο μεταβλητές. Αν η τιμή της μεταβλητής x είναι μεγαλύτερη από την τιμή της μεταβλητής y, τότε η συνθήκη είναι αληθής και η εντολή printf("x is greater than y\n"); εκτελείται, εκτυπώνοντας στην οθόνη το μήνυμα “x is greater than y”. Στη συνέχεια, το πρόγραμμα επιστρέφει την τιμή 0, διότι η συνάρτηση main δεν επιστρέφει κάποια τιμή.

Στο παρακάτω παράδειγμα, χρησιμοποιούμε τον τελεστή ισότητας (==) για να συγκρίνουμε διαφορετικές τιμές:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <stdio.h>
int main() {
int x = 10;
int y = 5;
int z = 10;
printf("%d\n", x == y); // Εκτυπώνει 0 (όχι ίσο)
printf("%d\n", x == z); // Εκτυπώνει 1 (ίσο)
return 0;
}
#include <stdio.h> int main() { int x = 10; int y = 5; int z = 10; printf("%d\n", x == y); // Εκτυπώνει 0 (όχι ίσο) printf("%d\n", x == z); // Εκτυπώνει 1 (ίσο) return 0; }
#include <stdio.h>

int main() {
  int x = 10;
  int y = 5;
  int z = 10;

  printf("%d\n", x == y); // Εκτυπώνει 0 (όχι ίσο)
  printf("%d\n", x == z); // Εκτυπώνει 1 (ίσο)

  return 0;
}

Στον παραπάνω κώδικα, έχουμε τρεις μεταβλητές x, y και z. Οι μεταβλητές x και z έχουν την ίδια τιμή (10), ενώ η μεταβλητή y έχει διαφορετική τιμή (5).

Με τη χρήση του τελεστή ισότητας (==), συγκρίνουμε τις τιμές των μεταβλητών x και y και των x και z. Η πρώτη σύγκριση επιστρέφει 0, δηλαδή false, επειδή οι τιμές των μεταβλητών δεν είναι ίσες. Η δεύτερη σύγκριση επιστρέφει 1, δηλαδή true, επειδή οι τιμές των μεταβλητών x και z είναι ίσες.

[adinserter block=”3″]

Δεν περιορίζεστε στη σύγκριση αριθμών. Μπορείτε επίσης να συγκρίνετε μεταβλητές boolean ή ακόμη και ειδικές δομές, όπως οι πίνακες (τους οποίους θα μάθετε περισσότερα σε ένα αργότερο κεφάλαιο):

Παράδειγμα:

Εδώ είναι ένα παράδειγμα που συγκρίνει δύο μεταβλητές boolean με τον τελεστή ==:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <stdio.h>
#include <stdbool.h>
int main() {
bool a = true;
bool b = false;
if (a == b) {
printf("a equals b\n");
} else {
printf("a does not equal b\n");
}
return 0;
}
#include <stdio.h> #include <stdbool.h> int main() { bool a = true; bool b = false; if (a == b) { printf("a equals b\n"); } else { printf("a does not equal b\n"); } return 0; }
#include <stdio.h>
#include <stdbool.h>

int main() {
  bool a = true;
  bool b = false;
  if (a == b) {
    printf("a equals b\n");
  } else {
    printf("a does not equal b\n");
  }
  return 0;
}

Επειδή οι μεταβλητές a και b είναι boolean, το αποτέλεσμα της σύγκρισης a == b θα επιστρέψει false. Η εντολή if εκτελείται όταν το αποτέλεσμα της σύγκρισης είναι ψευδές (false), επομένως το αποτέλεσμα του προγράμματος θα είναι:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
a does not equal b
a does not equal b
a does not equal b

Εδώ είναι ένα παράδειγμα που χρησιμοποιεί τον τελεστή >= για να ελέγξει αν ένα άτομο είναι αρκετά μεγάλο για να ψηφίσει:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <stdio.h>
int main() {
int age = 25;
int votingAge = 18;
if (age >= votingAge) {
printf("You are old enough to vote.\n");
} else {
printf("You are not old enough to vote.\n");
}
return 0;
}
#include <stdio.h> int main() { int age = 25; int votingAge = 18; if (age >= votingAge) { printf("You are old enough to vote.\n"); } else { printf("You are not old enough to vote.\n"); } return 0; }
#include <stdio.h>

int main() {
  int age = 25;
  int votingAge = 18;
  if (age >= votingAge) {
    printf("You are old enough to vote.\n");
  } else {
    printf("You are not old enough to vote.\n");
  }
  return 0;
}

Εδώ, οι μεταβλητές age και votingAge περιέχουν την ηλικία του χρήστη και το όριο ηλικίας για το ψήφο, αντίστοιχα. Η εντολή if εκτελείται όταν η ηλικία είναι μεγαλύτερη από ή ίση με το όριο ηλικίας, επομένως το πρόγραμμα θα εκτυπώσει το μήνυμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
You are old enough to vote.
You are old enough to vote.
You are old enough to vote.

Δωρεα μεσω Paypal

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

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

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

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