Εντολές ελέγχου 

 

Η 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)
      if (a>c) 
            printf ("max is a:%d", a);
      else
            printf ("max is c:%d", c);
 else
       if (b>c)
             printf ("max is b:%d",b);
       else
              printf("max is c:%d",c); 

int a,b,c;

.......... 

if (a>b  &&  a>c)
            printf ("max is a:%d", a);
if (b>a  &&  b > c)
            printf ("max is b:%d", b);
if (c> a  &&  c > b)
             printf ("max is c:%d",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 */

 
Στην προηγούμενη ενότητα

Στην αρχική σελίδα

Στην επόμενη ενότητα

Κ.Βασιλάκης / ΤΕΙ Κρήτης