[eeei.gr Logo]
Επικοινωνία
Ταυτότητα
Μαθήματα Internet | Μαθήματα Προγραμματισμού | Net Business | Τα νέα του Internet | Ο Κόσμος του Αύριο

while() do last

Μέχρι τώρα συναντήσαμε μόνο loops (επαναλαμβανόμενες διαδικασίες) όπου υπήρχε ένας έλεγχος τέλους, όπως while ($test ne 3) { κάνε κάτι}. Αν η $test έπαιρνε την τιμή 3 τότε όλα σταματούσαν. Αν στη while δεν δηλώσουμε κάποιον έλεγχο τότε αυτή θα τρέχει για πάντα (infinite loop). Για παράδειγμα:

while ()

{

print "Kolhsameeeeeeeeeeee\n";

}

Εδώ η εκτύπωση είναι:

Kolhsameeeeeeeeeeee

Kolhsameeeeeeeeeeee

Kolhsameeeeeeeeeeee

Kolhsameeeeeeeeeeee

Kolhsameeeeeeeeeeee

Kolhsameeeeeeeeeeee

Kolhsameeeeeeeeeeee

Kolhsameeeeeeeeeeee

Kolhsameeeeeeeeeeee

Kolhsameeeeeeeeeeee

Kolhsameeeeeeeeeeee

Kolhsameeeeeeeeeeee

Kolhsameeeeeeeeeeee

Kolhsameeeeeeeeeeee

Kolhsameeeeeeeeeeee

Kolhsameeeeeeeeeeee

Kolhsameeeeeeeeeeee

Kolhsameeeeeeeeeeee

Kolhsameeeeeeeeeeee

Kolhsameeeeeeeeeeee

K^C

Kolhsameeeeeeeeeeee

Kolhsameeeeeeeeeeee

Kolhsameeeeeeeeeeee

Με Ctrl -C διακόψαμε το πρόγραμμα. Διαφορετικά θα έτρεχε για πάντα.

Επιστροφή στην Κορυφή

Do

Στη while και την until η σύνταξη είναι while ($test ne 3) { κάνε κάτι}. Πρώτα λοιπόν ελέγχουμε και μετά εκτελούμε. Η Do (που στην πραγματικότητα είναι συνάρτηση και γι' αυτό χρειάζεται το ; στο τέλος της while) λειτουργεί ανάποδα. Πρώτα εκτελούμε και μετά ελέγχουμε. Για παράδειγμα:

my $sum = 0;

my $input;

do {

print "Type a number\n";

$input = <STDIN>;

chomp ($input);

$sum = $sum + $input;

} until ($sum > 300);

print "The sum is $sum\n";

Η εφαρμογή μας θα ζητάει την εισαγωγή νέων αριθμών όσο το until είναι αληθές. Θα σταματήσει λοιπόν μόνο όταν το $sum πάρει τιμή μεγαλύτερη από 300. Αν αντί για until ($sum > 300) δηλώσουμε while ($sum > 300) το loop θα τρέξει μόνο μια φορά αν η πρώτη τιμή που δηλώσουμε είναι 300 ή μικρότερη! Αυτό συμβαίνει επειδή το while loop εκτελείται μόνο αν ισχύει ό,τι έχει δηλωθεί σε αυτό. Αν λοιπόν το πρώτο $input είναι 300 ή μικρότερο, τότε δεν ισχύει το $sum > 300 και το loop διακόπτεται. Αν πάλι είναι μεγαλύτερο από 300 τότε θα κρατήσει για πάντα (infinite loop).


Τρέχουσα Ενότητα: Perl


 

Φιλικά - συνεργαζόμενα sites: Left Handed Products


© Eeei.gr 2009