Forum und email

do..while

Το do..while loop είναι αρκετά όμοιο με το while loop, εκτός από το ότι η έκφραση αλήθειας ελέγχεται στο τέλος κάθε επανάληψης και όχι στην αρχή. Η κύρια διαφορά από τα κανονικά while loops είναι ότι η πρώτη επανάληψη ενός do..while loop εγγυάται την εκτέλεση του (η αλήθεια της έκφρασης ελέγχεται μόνο στο τέλος της επανάληψης, ενώ μπορεί να μην είναι αναγκαίο να εκτελεστεί σε ένα κανονικό while loop (η αλήθεια της έκφρασης ελέγχεται στην αρχή κάθε επανάληψης, και αν πάρει την τιμή FALSE από την αρχή, η εκτέλεση του loop θα σταματήσει αμέσως).

Υπάρχει μόνο μια σύνταξη για τα do..while loops:

<?php
$i 
0;
do {
   print 
$i;
} while (
$i 0);
?>

Το παραπάνω loop θα τρέξει ακριβώς μια φορά, αφού μετά την πρώτη επανάληψη, όταν η έκφραση αληθείας ελέγχεται, παίρνει την τιμή FALSE (το $i δεν είναι μεγαλύτερο από το 0) και η εκτέλεση του loop σταματά.

Οι προχωρημένοι χρήστες της C ίσως έχουν οικειότητα με μια διαφορετική χρήση του do..while loop, για να επιτρέψουν το σταμάτημα της εκτέλεσης στη μέση του block του κώδικα, εμφωλεύοντας το στο do..while(0), και χρησιμοποιώντας τη break δήλωση. Αυτό φαίνεται στο παρακάτω κομμάτι κώδικα:

<?php
do {
    if (
$i 5) {
        print 
"i is not big enough";
        break;
    }
    
$i *= $factor;
    if (
$i $minimum_limit) {
        break;
    }
    print 
"i is ok";

    
/* process i */

} while(0);
?>

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