ΕΝΟΤΗΤΑ 10 – Conditions Και Loops Στην JavaScript (Part 3)
Μέχρι τώρα αναλύσαμε
τα if..else και switch
statements τα οποία επιτρέπουν στον
κώδικα μας να παίρνει αποφάσεις με βάση
κάποια συνθήκη που έχει οριστεί. Αν τώρα
θέλουμε ένα μπλοκ κώδικα να επαναλαμβάνεται
συνέχεια μέχρι το αποτέλεσμα κάποιας
συνθήκης να είναι true ή
false τότε πρέπει να
χρησιμοποιήσουμε loops.
Στην
JavaScript έχουμε τέσσερα
διαφορετικά είδη loops:
- while loops
- do-while loops
- for loops
- for-in loops
Ας
τα δούμε λοιπόν ένα προς ένα μέσα από
παραδείγματα.
WHILE LOOP
Ένα while
loop ορίζεται από την λέξη κλειδί
while και μια συνθήκη. Μέσα
στα άγκιστρα γράφουμε τον κώδικα που
θα τρέχει σε κάθε επανάληψη. Η ανάλυση
για το πιο πάνω πρόγραμμα είναι η εξής:
Ορίζουμε ένα while loop από
το οποίο ζητάμε όσο η συνθήκη παραμένει
true, να αυξάνεται η τιμή
του x προσθέτοντας την
τιμή του n στο x
σε κάθε επανάληψη. Οι τιμές του x
και του n μέσα στον
κώδικα αλλάζουν ως εξής:
-
Μετά την πρώτη επανάληψη n =
1 και x = 1
-
Μετά την δεύτερη επανάληψη n
= 2 και x = 3
-
Μετά την τρίτη επανάληψη n
= 3 και x = 6
Αμέσως
μετά την ολοκλήρωση της τρίτης επανάληψης,
η συνθήκη n < 3 είναι false
οπότε και το loop σταματάει
να εκτελείται. Η πιο σημαντική γραμμή
μέσα στο while loop είναι το
n++. Αν δεν επηρεάσουμε
κατά κάποιο τρόπο την τιμή της μεταβλητής
n μέσα στον κώδικα μας,
τότε η τιμή του n δεν
πρόκειται να μεταβάλλεται και η συνθήκη
θα είναι πάντα true προκαλώντας
ένα infinite loop (δεν θα σταματάει
ποτέ). Ένα while loop χρησιμοποιείται
συνήθως όταν ο αριθμός των επαναλήψεων
δεν είναι γνωστός.
DO-WHILE
LOOP
Το Do-While
loop λειτουργεί με τον ίδιο τρόπο όπως
και το while loop με την διαφορά
ότι η συνθήκη θα ελεγχθεί στο τέλος
αφότου έχει εκτελεστεί ο κώδικας και
όχι στην αρχή. Συνήθως χρησιμοποιούμε
το Do-While loop όταν θέλουμε
να βεβαιωθούμε ότι ο κώδικας μέσα στο
loop θα τρέξει τουλάχιστον
μια φορά.
FOR
LOOP
Χρησιμοποιούμε
το for loop (με
την λέξη κλειδί for) συνήθως
όταν ο αριθμός των επαναλήψεων είναι
γνωστός ή προβλέψιμος. Το for
loop αποτελείται από τρία expressions
τα οποία χωρίζονται με semicolons
(;) το ένα από το άλλο. Και οι τρεις
όροι είναι μέσα σε μια παρένθεση.
Το
πρώτο expression ονομάζεται
initialization και είναι εκεί
που ορίζουμε και αρχικοποιούμε τις
μεταβλητές που συνήθως παίζουν το ρόλο
του counter.
Ο
δεύτερος όρος είναι το condition
και εκεί ορίζεται η συνθήκη στην
οποία θα στηριχτεί η εκτέλεση του loop.
Όσο η συνθήκη είναι true
τότε το loop θα συνεχίζει
να εκτελείται.
Το
τελευταίο expression ονομάζεται
step ή final expression
και είναι εκεί που ορίζουμε αν
θέλουμε το counter να αυξάνεται
ή να μειώνεται και κατά πόσο (π.χ. i
+ 2).
FOR...IN
LOOP
Το for...in
loop χρησιμοποιείται για να διαβάσει
διαδοχικά όλα τα στοιχεία που ανήκουν
σε ένα αντικείμενο (object) ή
έναν πίνακα (array). Επειδή
ακόμα δεν έχουμε μιλήσει για αντικείμενα,
το παράδειγμα που δείχνουμε εδώ διαβάζει
τα στοιχεία από έναν array.
Γενικότερα, το for..in loop δεν
μπορεί να χρησιμοποιηθεί σαν ένα γενικού
τύπου loop σε αντικατάσταση
του for ή του while.
Η πιο σύνηθες χρήση του είναι με
αντικείμενα.
Στο
πιο πάνω παράδειγμα, διαβάζουμε όλα τα
στοιχεία ενός array και
δείχνουμε για κάθε index την
τιμή που έχουμε διαβάσει από τον array.
Μιχάλης
Κασάπογλου