Εντολές ελέγχου |
Η C υποστηρίζει τις παρακάτω δομές ελέγχου:
Εντολή if-else:
Οι εντολές if και if-else υπάρχουν σχεδόν σε όλες τις γλώσσες προγραμματισμού. Χρησιμοποιούνται για να ελέγξουν να ισχύει ή όχι κάποια συνθήκη. Στην C η γενική σύνταξη της εντολής είναι:
if (<ΣΥΝΘΗΚΗ>)
Ενότητα -Α
else
Ενότητα-Β
Η <ΣΥΝΘΗΚΗ> μπορεί να είναι λογική έκφραση, έκφραση συσχετισμού, αποτέλεσμα κάποιας πράξης, είτε ακόμα και κάποια μεταβλητή. Η Ενότητα-Α και η Ενότητα-Β μπορεί να περιλαμβάνουν μία εντολή ή πολλές εντολές (block) που περικλείονται σε άγκιστρα ({,}). Οι εντολές (ή η εντολή) της Ενότητας-Α εκτελούνται αν η <ΣΥΝΘΗΚΗ> είναι αληθής (όχι 0), ενώ οι εντολές (ή η εντολή) της Ενότητας-Β εκτελέιται αν η <ΣΥΝΘΗΚΗ> είναι ψευδής (0-μηδέν). Το else είναι προαιρετικό και όταν υφίσταται αναφέρεται στο πλησιέστερο πριν από αυτό if που δεν έχει else. Kάθε ενότητα είναι δυνατόν να περικλείει και άλλες if-else ενότητες (blocks) εντολών. Παραδείγματα:
Προγραμμα -Α | Προγραμμα -Β |
int num; ....... if (num = = 2) printf("The num is now: 2\n"); if (num < 5) printf("The num is now %d, less than 5\n",num); else printf("The num is now %d, greater than 4\n",num); |
int num; ....... if (num = = 2) printf("The num is now: 2\n"); else if (num < 5) printf("the num is now less than 5\n"); else printf("the num is now greater than 4\n"); |
Προγραμμα -Γ | Προγραμμα -Δ |
int a,b,c; .......... if
(a>b) |
int a,b,c; .......... if
(a>b && a>c) |
Σχολιάστε:
σε τι διαφέρουν τα προγράμματα Α και Β και
σε τι τα προγράμματα Γ και Δ.
Εντολή switch:
Η γενικευμένη μορφή της εντολής είναι:
switch (έκφραση)
{
case σταθερά1:
εντολή1;
break;
case σταθερά2:
εντολή2;
break;
default:
εντολήΝ;
break;
}
Εκτελείται η εντολή της οποίας η σταθερά ταιριάζει με την τιμή της έκφρασης. Η εκτέλεση του προγράμματος μέσα σε ένα switch συνεχίζεται στο επόμενο case, εκτός αν δεν μεσολαβεί κάποια από τις εντολές break, exit ή return. Αν η τιμή δεν ταιριάζει με καμία σταθερά, τότε εκτελείται η εντολή στο block της default (που είναι προαιρετικό).
#include <stdio.h>
main()
{
int a;
printf("Enter an integer: ");
scanf("%d", &a);
/* Check values of a */
switch (a)
{
case 1:
puts("You entered 1");
break;
case 2:
puts("You entered 2");
break;
case 3:
puts("You entered 3");
break;
case 4:
puts("You entered 4");
break;
case 5:
puts("You entered 5");
break;
case 6:
puts("You entered 6");
break;
default:
puts("You enter an integer less than 1 or more than 6");
}
}
Εντολή break:
H εντολή break προκαλεί τον τερματισμό μιάς εντολής switch ή και μιάς επανάληπτικής διαδικασίας (που προκλήθηκε με εντολή for ή την while - δείτε την επόμενη ενότητα). Η εκτέλεση του προγράμματος συνεχίζεται μετά την εντολή switch ή την ενολή επανάληψης.
while(...)
{
. . .
break;
. . .
}
. . . /* H εκτέλεση του προγράμματος συνεχίζεται μετά το break */
Στην προηγούμενη ενότητα | ||
Κ.Βασιλάκης / ΤΕΙ Κρήτης |