Hits : 2162


Δομές Ελέγχου


Στον προγραμματισμό οι δομές ελέγχους είναι αυτές που ορίζουν την ροή του προγράμματος, την λογική του και τον τρόπο συγγραφής του. Οι πιο σημαντικές δομές ελέγχου είναι οι εξής:


if - elseif - else
ternary (if-then-else)
for
while
switch
 
do-while
foreach
break
continue
declare
return
require
include
require_once
include_once

top


if 


Εάν. Ίσως η σημαντικότερη δομή ελέγχου. Μέσα από την δομή ελέγχου εάν μπορούμε να επιλέγουμε κάθε φορά διαφορετικό τμήμα κώδικα.
Δηλώνει απόφαση και χειριζόμαστε το αποτέλεσμα της απόφασης καθώς και τις εναλλακτικές αποφάσεις – δηλώσεις.


Ο τρόπος σύνταξης είναι ο εξής:


Εάν ( αλήθεια ) τότε 
   εκτέλεσε αυτό το τμήμα κώδικα


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


Εάν ( η συνθήκη είναι αληθής) τότε
  εκτέλεσε αυτό το τμήμα κώδικα
Αλλιώς [εάν] (αυτή η συνθήκη είναι αληθής) τότε
  εκτέλεσε αυτό το τμήμα κώδικα
Αλλιώς
  εκτέλεσε αυτό το τμήμα κώδικα


Και για να γίνει πιο κατανοητό παρακάτω παραθέτω ένα παράδειγμα:


<?php
$a = 10 ;
$b = 20 ;
 
if ( $a > $b ) {
  print "To a einai megalytero apo to b";
} elseif ($a == $b ) {
  print "To a einai iso me to b";
} else {
  print "To a einai mikrotero apo to b";
}
?>

ternary


Στην php έχει υλοποιηθεί μία ακόμα δομή η ternary. Η ternary είναι μία σύμπτυξη της if – then – else
όταν θέλουμε να εκτελέσουμε μία εντολή για κάθε λογικό αποτέλεσμα (true/false). Με αυτό τον τρόπο
μπορούμε να γράφουμε πιο λυτά και γρήγορα προγράμματα.


Η δομής είναι η εξής:


( Συνθήκη ) ? command : command ;


κι ένα παράδειγμα είναι το εξής:


Κλασική Μέθοδος


if ( $alitheia = 1 ) { 
  print "Yes. it's true";
} else {
  print "No, it's false";
}

Ternary


( $alitheia = 1 ) ?   print "Yes. it's true" : print "No, it's false" ;

top


for 


Από τις πιο διαδεδομένες δομές ελέγχου, μέσα από την οποία δηλώνουμε επανάληψη ενός τμήματος κώδικα. Η for εκτελείται με την χρήση μετρητή
και όχι συνθήκης. Ο μετρητής έχει αρχική τιμή, τελική τιμή και βήμα αύξησης ή μείωσης. Η επανάληψη είναι ελεγχόμενη καθώς και το 
σύνολο των βημάτων. Ο τρόπος σύνταξης είναι ο εξής:


Για  (  μετρητή ίσον με αρχική τιμή,   μέχρι ο μετρητής να φτάσει στην τελική τιμή.   με βήμα αύξησης / μείωσης )
          επανέλαβε 
τέλος επανάληψης.


Παράδειγμα χρήσης της for :


<?php
for ( $i = 0 ; $i < 10 ; $i++ ) { 
  echo "Επανάληψη Νούμερο: ".  ( $i + 1 ) . "<br>";
}
?>

H δομή ελέγχου for μπορεί να συνταχθεί και ως εξής:


<?php
$i = 0 ;
for ( ; $i < 10 ;  ) {
   echo "Επανάληψη # ". ($i + 1 ) . "<br>";
   $i++;
} 
?>

top


While


Η δομή ελέγχου while είναι μία επαναληπτική δομή. Δλδ χρησιμοποιείται για να εκτελέσουμε πάρα πολλές φορές μία ή ένα σύνολο εντολών.


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


while ( συνθήκη αληθής ? )  { 
  σύνολο εντολών
}


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


ΠΡΟΣΟΧΗ
Όταν γράφουμε επαναληπτικές διαδικασίες προσέχουμε να μην δημιουργήσουμε έναν ατέρμονα βρόγχο. Ατέρμον Βρόγχος ονομάζεται η επαναληπτική διαδικασία χωρίς τέλος !!!
Εάν ΔΕΝ είμαστε σίγουροι για την συνθήκη που έχουμε γράψει τότε καλό είναι να ΜΗΝ βιαστούμε να την τρέξουμε.


ΠΑΡΑΔΕΙΓΜΑ ΠΡΟΣ ΑΠΟΦΥΓΗ:


<?php 
while ( true )
  echo "Έκανα μεγάλη κουταμάρα, η επανάληψη ΔΕΝ θα τελειώσει ποτέ";
?>

Παράδειγμα χρήσης της while :


<?php
$i = 0 ; // Μεταβλητή i, μετρητής
while ( $i < 10 ) {
  echo "Επανάληψη #". ($i + 1 ) . "<BR>";
  $i++;  // Αυξάνει την τιμή της μεταβλητής i με βήμα 1  
}
?>

top


Switch


Με την δομή ελέγχου switch μπορούμε να "γλιτώσουμε" πάρα πολλά if – elseif – else Η switch μας δίνει την δυνατότητα των πολλαπλών επιλογών και η σύνταξή της είναι η εξής:


switch ( Τιμή Μεταβλητής )
 Εάν η τιμή είναι 0:
    Η μεταβλητή έχει τιμή 0
    έχοδος
 Εάν η τιμή είναι  1:
    Η μεταβλητή έχει τιμή 1
    έχοδος
 Εάν η τιμή είναι  2:
    "Η μεταβλητή έχει τιμή 2
    έχοδος
 Αλλιώς: 
    Εάν η τιμή ΔΕΝ είναι ούτε 0, ούτε 1, ούτε 2

Η παραπάνω σύνταξη πρέπει να μας θυμίζει τα πολλαπλά φωλιασμένα if – elseif – else μόνο που εδώ
ΔΕΝ χρειάζεται να περάσει από ΌΛΑ τα if – elseif παρά μόνο να εξετάζει την τιμή της μεταβλητής.


Ένα παράδειγμα της δομής switch :


<?php
switch ($i) {
case 0:
    echo "i equals 0";
    break;
case 1:
    echo "i equals 1";
    break;
case 2:
    echo "i equals 2";
    break;
}
?>

top