Κεφάλαιο 5

Συνθήκες και Βρόγχοι - Λήψη Αποφάσεων και Έλεγχος Σεναρίων - Συναρτήσεις


Συνθήκες και Βρόγχοι - Λήψη Αποφάσεων και Έλεγχος Σεναρίων - Συναρτήσεις

Τη λήψη αποφάσεων μπορείτε να την κάνετε με τη χρήση εκφράσεων συνθήκης που χρησιμοποιούμε καθημερινά. Για παράδειγμα:
"Αν οι βαθμοί σου είναι καλοί θα σου δώσω 10$"
Το πρώτο μέρος αυτής της πρότασης, "Αν οι βαθμοί σου είναι καλοί" είναι μια έκφραση συνθήκης. Αν είναι αληθής (true) τότε θα συμβεί το δεύτερο μέρος της πρότασης ενώ αν είναι ψευδής (false) δεν θα γίνει το δεύτερο μέρος της πρότασης.
Ουσιαστικά, η πρόταση θα μπορούσε να είναι λίγο πιο πολύπλοκη :
" Αν οι βαθμοί σου είναι καλοί, θα σου δώσω 10$.Διαφορετικά θα πας στο φροντιστήριο το καλοκαίρι." Σ'αυτή την περίπτωση κάτι συμβαίνει και η συνθήκη είναι false. Αν οι βαθμοί δεν είναι καλοί, τότε θα πας φροντιστήριο το καλοκαίρι.

Η πρόταση if

Ένας τρόπος για να γράψετε εκφράσεις συνθήκης είναι με τις προτάσεις if. Οι προτάσεις if είναι αυτής της μορφής:
if (έκφραση συνθήκης) {
κάνε κάτι
}

Η έκφραση συνθήκης βρίσκεται μεταξύ των παρενθέσεων - ( ). Αν αξιολογείται σαν αληθής, εκτελείται η έκφραση μεταξύ των αγκίστρων {}. Αν δεν είναι τότε η έκφραση μεταξύ των αγκίστρων δεν εκτελείται. Δείτε το παρακάτω παράδειγμα:

var sButton
function function1() {
if (sButton = = "A" ) {
alert ("Πατήσατε το κουμπί \'Α\'")
}
}

Σημείωση

Πρέπει να γράφετε if και όχι IF ή If γιατί δεν θα δουλέψουν.
Δημιουργήθηκε μια συνάρτηση (function1()) που χρησιμοποιεί μια πρόταση if για να αποφασίσει τι να κάνει. Δείτε την πρώτη γραμμή της if πρότασης. Μέσα στην παρένθεση θα δείτε : sButton= = "A". Αυτό σημαίνει, "Κοίτα στην μεταβλητή sButton και δες αν ισούται με το A". Αν η μεταβλητή περιέχει πράγματι το A, η έκφραση είναι αληθής. Είναι σημαντικό να τονιστεί ότι η συνθήκη μετά το if, μέσα στην παρένθεση, πρέπει να είναι αληθής. Αν δεν είναι οι οδηγίες μέσα στις αγκύλες - {}- δεν θα εκτελεστούν.

Σημείωση

Υπάρχουν δύο σετ συμβόλων {}. Το πρώτο ανήκει στη συνάρτηση και περιέχει τις προτάσεις της, στην περίπτωση αυτή την πρόταση if, και το δεύτερο που, είναι ενσωματωμένο στο πρώτο, περιέχει τις οδηγίες που θα εκτελέσει η πρόταση if αν η συνθήκη είναι αληθής.
Παρατηρήστε ότι ο τελεστής που χρησιμοποιήθηκε εδώ δεν είναι ο = αλλά ο = =, δύο ισότητες μαζί. Υπάρχει διαφορά στο νόημα της συνθήκης ισότητας = = και της εκχώρησης =. Όταν χρησιμοποιείτε το σύμβολο εκχώρησης, στη μεταβλητή στα αριστερά του = εκχωρείται η τιμή της έκφρασης στα αριστερά του =. Αυτό που θέλετε να κάνετε σε μια έκφραση συνθήκης είναι να δείτε τι υπάρχει στην μεταβλητή στα αριστερά του συμβόλου. Σε μια έκφραση συνθήκης δεν υπάρχει εκχώρηση τιμών - γίνεται μια σύγκριση, αλλά δεν υπάρχουν μεταβλητές που να παίρνουν νέες τιμές.

Σημείωση

Δεν πρέπει να μπερδέψετε το = με το = = . Στην περίπτωση που ξεχάσετε τη διαφορά και χρησιμοποιήσετε = στην if πρόταση σας τότε ο Netscape Navigator θα εμφανίσει το παρακάτω μήνυμα :

test for equality ( = = ) mistyped as assigment (=)? Assuming eguality test
(έλεγχος ισότητας (= = ) δακτυλογραφήθηκε λανθασμένα σαν εκχώρηση (=); Λαμβάνεται σαν έλεγχος ισότητας)

Ο Όρος ELSE

Μπορείτε να φτιάξετε εκφράσεις συνθήκης που να κάνουν κάτι αν η συνθήκη είναι ψευδής. Αν οι βαθμοί σου δεν είναι καλοί (μια ψευδής συνθήκη), θα πας φροντιστήριο το καλοκαίρι. Αυτό γίνεται με τη χρήση του όρου else, μαζί με την πρόταση if, με τον παρακάτω τρόπο:

function function1() {
if (sButton = = "A" ) {
alert ("Πατήσατε το κουμπί \'Α\'")
}
else {
alert ("Πατήσατε το κουμπί \'B\'")
}
}

Δημιουργήσαμε μια function1() με τον ίδιο τρόπο όπως προηγουμένως, αλλά προσθέσαμε τρείς ακόμη γραμμές , ξεκινώντας από το "else". Και πάλι, οι οδηγίες που πρόκειτε να εκτελεστούν μέσα στην true ή false συνθήκη βρίσκονται μέσα σε { και }.Τώρα εμφανίζεται πάλι το πλαίσιο alert αλλά με διαφορετικό μήνυμα. Αν η συνθήκη είναι false, η sButton δεν περιέχει την τιμή A, και έτσι εμφανίζεται το μήνυμα Πατήσατε το κουμπί 'B'.

Η Χρήση των Αγκίστρων

Στα μέχρι τώρα παραδείγματα χρησιμοποιούσαμε τις αγκύλες{}για να βάλουμε τις οδηγίες που θα εκτελεστούν σε true ή false συνθήκες. Αν δεν το κάνετε αυτό μόνο η πρώτη έκφραση μετά το if εκτελείται. Στο επόμενο παράδειγμα έχουν αφαιρεθεί οι αγκύλες αλλά το πρόγραμμα δεν είναι τόσο ευκολοδιάβαστο :

var sButton
function function1() {
if (sButton = = "A")
alert( "Πατήσατε το κουμπί\'A\'")
alert( "Αυτή είναι η γραμμή μετά την πρόταση if")
}

Προσέξτε ότι η ίδια η πρόταση if βρίσκεται σε {}, τα οποία ανήκουν στη συνάρτηση. Μόνο οι οδηγίες true δεν βρίσκονται σε αγκύλες.

Τελεστές Συνθήκης

Υπάρχουν και άλλοι τελεστές συνθήκης. Αν μπορούσατε να ελέγξετε μόνο αν μια τιμή ισούται με κάτι θα ήσασταν πολύ περιορισμένος. Έτσι υπάρχουν τελεστές που μας αφήνουν να δούμε αν μια τιμή δεν ισούται με κάτι αν είναι μεγαλύτερη ή μικρότερη από κάτι κ.ο.κ. Ακολουθούν οι τελεστές συνθήκης:
= =   Ίσο με (το έχουμε ήδη δεί)
!=   Διάφορό του. Ελέγχει αν η τιμή δεν είναι κάτι.
 >   Μεγαλύτερο από. Ελέγχει αν κάτι είναι μεγαλύτερο από κάτι άλλο.xy σημαίνει “έλεγξε αν το x είναι μεγαλύτερο από το y”
<   Μικρότερο από. Ελέγχει αν κάτι είναι μικρότερο από κάτι άλλο.xy σημαίνει “έλεγξε αν το x είναι μικρότερο από το y”
=   Μεγαλύτερο ή ίσο με. Ελέγχει αν κάτι είναι μεγαλύτερο από ή ίσο με κάτι άλλο. x=y σημαίνει “ ‘ελεγξε αν το x είναι μεγαλύτερο από ή ίσο με το y”
<=   Μικρότερο ή ίσο με. Ελέγχει αν κάτι είναι μικρότερο από ή ίσο με κάτι άλλο. x=y σημαίνει “ ‘ελεγξε αν το x είναι μικρότερο από ή ίσο με το y”
?   Τριαδικός τελεστής. Αποτελεί μια συντομογραφία του if . Ελέγχει μια καταστατική έκφραση για να δεί αν είναι αληθής και στην συνέχεια εκχωρεί μια τιμή στη μεταβλητή, που εξαρτάται από το αν η τιμη είναι αληθής ή όχι . x = (κατάσταση) ? y:z σημαίνει “ έλεγξε αν η κατάσταση είναι αληθής. Αν είναι, τότε βάλε την τιμή του y στο x. Αν δεν είναι, τότε βάλε την τιμή του z στο x”.

'Ενθετες Προτάσεις IF

Σε μερικές προτάσεις μπορούμε να έχουμε ένθετες if προτάσεις. Αυτό σημαίνει ότι η μία if πρόταση βρίσκεται μέσα στην άλλη. Οι προτάσεις συνθήκης επιτρέπουν μόνο δύο επιλογές και έτσι δεν μπορεί να υπάρξει ποικιλία αποφάσεων. Οι ένθετες προτάσεις if είναι ένας τρόπος για να γίνει αυτό. Παρόλο που μια if πρόταση δεν έχει δυνατότητα πολλών επιλογών, αν βάλετε μερικές ένθετες if προτάσεις, το σενάριο έχει αυτή τη δυνατότητα. Το πρώτο if έχει δύο επιλογές: την τελική απόφαση ή ένα άλλο if,ή ακόμη δύο διαφορετικά if. Το ίδιο συμβαίνει και με το δεύτερο if. Μπορεί να έχει μια τελική απόφαση ή ένα if, ή δύο ακόμη if. Μπορείτε να συνεχίσετε έτσι, με μια κλιμάκωση των προτάσεων if που η μια οδηγεί στην άλλη.

Ας δούμε το παρακάτω παράδειγμα :

<SCRIPT LANGUAGE = "JavaScript">
<!- -
function function1() {
var dToday = newDate()
var nDay = dToday.getDay()
if (nDay= = 0) {
alert("Είναι Κυριακή")
}
else {
if (nDay<=5) {
alert("Είναι καθημερινή")
}
else {
alert("Είναι Σάββατο")
}
}
}
//- ->
</SCRIPT>

Χρησιμοποιούμε ξανά το αντικείμενο Date για να πάρουμε την τρέχουσα ημέρα που είναι ένας αριθμός ο οποίος αντιπροσωπεύει την ημέρα της εβδομάδας, από το 0 (Κυριακή) εώς το 6 (Σάββατο).

Σημείωση

Όταν η JavaScript χρησιμοποιεί αριθμούς, ξεκινάει από το 0 και όχι από το 1. Έτσι, η τελευταία ημέρα της εβδομάδας είναι η 6 και όχι η 7.
Κατά την επεξεργασία ταξινομούνται με τη σειρά αυτές οι if προτάσεις. Αν η nDay είναι ίση με 0 (Κυριακή), εκτελείται η πρώτη γραμμή alert-Είναι Κυριακή. Αν είναι οποιοσδήποτε άλλος αριθμός εκτελείται το τμήμα else. Μέσα στο else αυτό βρίσκεται και μια άλλη πρόταση if. Σ'αυτήν ελέγχεται αν η μέρα είναι μικρότερη ή ίση από το 5 (δεν μπορεί να είναι 0). Αν ήταν 0 τότε εκτελείται η πρώτη alert γραμμή. Θα δείτε το μήνυμα Είναι καθημερινή. Αν δεν είναι, τότε δεν μπορεί παρά να είναι Σάββατο και εκτελείται η γραμμή else.

Σημείωση

Αν παρατηρήσατε, παραγραφοποιήσαμε τα σύμβολα {} προς τα δεξιά και τοποθετήσαμε τα καταληκτικά } σε ξεχωριστές γραμμές. Μπορείτε επίσης να χρησιμοποιήσετε και κενές γραμμές, για να διαχωρίζετε τα διάφορα τμήματα. Αυτό κάνει το σενάριο πιο ευανάγνωστο.

Boolean Λογικοί Τελεστές σε Εκφράσεις Συνθήκης

Υπάρχει μια τάξη τελεστών που ονομάζονται Boolean λογικοί τελεστές. Η άλγεβρα Boolean είναι ένας τρόπος έκφρασης λογικών προτάσεων σε ένα κλάδο των μαθηματικών που καλείται λογική. Στην καθημερινή μας ζωή χρησιμοποιούμε τελεστές Boolean όπως χρησιμοποιούμε εκφράσεις συνθήκης. Παράδειγμα :

Όταν μάθω JavaScript και μάθω και HTML,
θα πάω διακοπές.

Οι δύο εκφράσεις συνθήκης στην πρώτη γραμμή συνδέονται με το "και" για να δώσουν μια έκφραση συνθήκης. Πρέπει να είναι και οι δύο αληθείς, για να είναι ολόκληρη η έκφραση αληθής. Οι τελεστές Boolean χρησιμοποιούνται για να συνδυάζουν εκφράσεις συνθήκης. Μπορείτε να τους χρησιμοποιήσετε για να πάρετε true μόνο αν και οι δύο καταστάσεις είναι αληθείς, ή είτε η μια είτε η άλλη είναι αληθής. Αυτοί είναι οι τελεστές Boolean :

! Not (λέει τι τιμή περιέχει η μεταβλητή)
&& And. Η κατάσταση x και η κατάσταση y πρέπει να είναι αληθείς.
|| Or. Η κατάσταση x ή η κατάσταση y πρέπει να είναι αληθής.

Μια Άλλη Μορφή της Πρότασης IF

Υπάρχει και μια πιο γρήγορη μέθοδος για να γράψουμε μια πρόταση if, αν και πρέπει να τονίσουμε ότι αυτή η έκφραση δεν συγκρίνει απλά τιμές αλλά εκχωρεί και μια τιμή σε μια μεταβλητή. Έχει αυτή τη μορφή :

μεταβλητή = (συνθήκη) ? τιμή1 : τιμή2

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

function function1() {
var dToday = newDate()
var nSeconds = dToday.getSeconds()
var sText = (nSeconds30)? "ΠΕΡΙΣΣΟΤΕΡΟ" : "ΛΙΓΟΤΕΡΟ"
alert( "Πέρασε" +sText+ "από το μισό αυτού του λεπτού. -->
Δευτερόλεπτα = " +nSeconds )
}

Αν η nSeconds είναι μεγαλύτερη από 30, τότε η μεταβλητή sText γίνεται ΠΕΡΙΣΣΟΤΕΡΟ διαφορετικά η sText γίνεται ΛΙΓΟΤΕΡΟ. Στην συνέχεια η μεταβλητή αυτή χρησιμοποιείται από το πλαίσιο alert για να εμφανίσει το μήνυμα.

Βρόγχοι

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

Ο Βρόγχος For

Η πρόταση for είναι ένας τρόπος με τον οποίο μπορείτε να γράψετε έναν βρόγχο. Ακολουθεί ένα χαρακτηριστικό παράδειγμα.

function function1() {
var i
for (i= 1; i<4; i++) {
alert ( " Η τιμή στην i είναι " +i )
}
alert("Ο βρόγχος ολοκληρώθηκε και η i είναι" +i )
}

Αυτή είναι μια πρόταση for. Ο βρόγχος μετράει εώς το τρία. Κάθε φορά που προσθέτει ένα, εκτελεί τον κώδικα μέσα στις αγκύλες. Ο κώδικας αυτός εμφανίζει ένα πλαίσιο alert που δείχνει την τιμή στη μεταβλητή i. Το πλαίσιο σταματάει το πρόγραμμα και περιμένει να πατήσετε OK. Μετά συνεχίζει ο βρόγχος.

Σημείωση

Δεν υπάρχει τίποτα το ασυνήθιστο στην λειτουργία αυτού του πλαισίου alert. Κάθε φορά που ένα σενάριο ανοίγει ένα τέτοιο πλαίσιο, σταματάει πάντα και περιμένει το χρήστη να πατήσει OK.

Ας δούμε με περισσότερη λεπτομέρεια τη μορφή της πρότασης for :
for (αρχική έκφραση ; έκφραση συνθήκης; έκφραση ενημέρωσης) {
κώδικας που εκτελείται αν η έκφραση συνθήκης είναι true
}

Το πρώτο βήμα της έκφρασης for, η αρχική έκφραση, εκτελείται την πρώτη φορά που εκτελείται ο βρόγχος - πριν γίνει οτιδήποτε άλλο. Είναι συνηθισμένο να ξεκινά εδώ ένας "μετρητής" (μια μεταβλητή που κρατάει έναν αριθμό που δείχνει πόσες φορές; έχει τρέξει ο βρόγχος) και στο παράδειγμα μας ο μετρητής είναι i.
Η έκφραση συνθήκης αξιολογείται πρίν από την εκτέλεση του βρόγχου. Άν η έκφραση αυτή είναι αληθής, ξεκινά ο επόμενος κύκλος του βρόγχου και τρέχει ο κώδικας μέσα στις αγκύλες (στο παράδειγμα εμφανίζεται το πλαίσιο alert). Αν η έκφραση συνθήκης δεν είναι αληθής, τότε ο κώδικας δεν εκτελείται και ο βρόγχος τερματίζει. Ο browser πηγαίνει στην επόμενη γραμμή του σεναρίου, αμέσως μετά το καταληκτικό } της πρότασης for. Στο σενάριο μας, η έκφραση συνθήκης είναι i<4 που σημαίνει "εκτέλεσε τον βρόγχο αν η τιμή του i- του μετρητή- είναι μικρότερη από 4".
Η έκφραση ενημέρωσης αξιολογείται κάθε φορά που ολοκληρώνεται ένας κύκλος του βρόγχου. Με άλλα λόγια, εκτελείται ο κώδικας στις αγκύλες, πρίν γίνει η ενημέρωση. Στο παράδειγμα μας, αυτή η έκφραση αυξάνει την τιμή της μεταβλητής κατά 1, χρησιμοποώντας τον τελεστή αύξησης ++. Οι εκφράσεις ενημέρωσης χρησιμοποιούνται συνήθως για να αυξήσουν τον μετρητή και αυτός χρησιμοποιείται για να δείξει πόσες φορές θα τρέξει ο βρόγχος.

Σημείωση

Πρέπει να είσαστε ιδιαίτερα προσεκτικοί με τις εκφράσεις συνθήκης και τις εκφράσεις ενημέρωσης. Άν κάνετε λάθος, μπορεί το σενάριο σας να κολλήσει σ'έναν ατέρμονα βρόγχο. Δοκιμάστε για παράδειγμα i+2 σαν έκφραση ενημέρωσης. Επειδή είναι λάθος και δεν ενημερώνει τον μετρητή, η έκφραση συνθήκης βγαίνει πάντα αληθής και ο βρόγχος συνεχίζεται επ'άπειρον. Θα πρέπει να καταρρεύσει ο browser για να σταματήσει.

Ο Βρόγχος While

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

function function1() {
var i=1
while (i<4) {
alert(" Η τιμή στην i είναι"+i )
i++
}
alert("Ο βρόγχος ολοκληρώθηκε και η i είναι" +i )
}

Ο βρόγχος εκτελείται ενώ (while) η έκφραση συνθήκης στην παρένθεση είναι αληθής. Από τη στιγμή που i= 4 και ησυνθήκη αξιολογείται ως false, τερματίζει ο βρόγχος και το πρόγραμμα προχωράει στην επόμενη γραμμή, που είναι το τελευταίο πλαίσιο alert.
Ακολουθεί η βασική μορφή του βρόγχου while :

while (έκφραση συνθήκης) {
κώδικας που θα τρέξει ενώ η έκφραση συνθήκης είναι αληθής
}

Όπως βλέπετε η πρόταση while έχει μια έκφραση συνθήκης. Αν η έκφραση είναι αληθής ( στο παράδειγμα μας αν i<4), τότε εκτελείται ο κώδικας μετά τα άγκιστρα. Αν δεν είναι αληθής προχωρά στην επόμενη γραμμή του σεναρίου. Στην περίπτωση αυτή εμφανίζει ένα πλαίσιο alert που λέει ότι ο βρόγχος τερμάτισε. Έχουμε πάλι ένα καταμετρητή στο παράδειγμα αυτό, αλλά αυτή τη φορά έχει τοποθετηθεί στον κώδικα μέσα στις αγκύλες. Οι προτάσεις while δεν έχουν εκφράσεις ενημέρωσης.

Ας δούμε έναν άλλο βρόγχο while, αυτή τη φορά χωρίς μετρητή :

fnction function1() {
var sWord= " "
while (sWord!= "Τέλος") {
sWord = prompt ( "Πληκτρολογήστε τη λέξη\'Τέλος\'για να -->
σταματήσετε το βρόγχο", "")
}
alert( "Ο βρόγχος ολοκληρώθηκε")
}

Το παράδειγμα αυτό χρησιμοποιεί ένα καινούργιο στοιχείο της JavaScript που ακόμη δεν έχουμε δεί : το πλαίσιο προτροπής. Το πλαίσιο προτροπής συλλέγει αυτό που δακτυλογραφεί ο χρήστης. Στην περίπτωση αυτή εμφανίζει το μήνυμα Πληκτρολογήστε τη λέξη 'Τέλος' για να σταματήσετε το βρόγχο και ότι γράψει ο χρήστης θα εισαχθεί στην μεταβλητή sWorld, όταν ο χρήστης πατήσει το OK. Αυτός ο βρόγχος while θα επαναλαμβάνεται μέχρι η sWorld να έχει τη λέξη Τέλος. Ουσιαστικά έχουμε πει στην πρόταση while να συνεχίζει όσο η sWorld δεν περιέχει τη λέξη Τέλος. Έτσι μέχρι ο χρήστης να γράψει τη σωστή λέξη, ο βρόγχος while θα συνεχίζει να εμφανίζει το πλαίσιο προτροπής.

Βρόγχοι Do While

Άλλη μια συνηθισμένη μορφή βρόγχου είναι ο βρόγχος do while. Αυτό το είδος είναι σημαντικό, γιατί εγγυάται ότι οι οδηγίες θα εκτελεστούν τουλάχιστον μια φορά, βάζοντας την έκφραση συνθήκης μετά την οδηγία που πρέπει να εκτελεστεί. Σε πολλά είδη βρόχων, η έκφραση συνθήκης ελέγχεται πρώτη και έτσι, σε κάποιες περιπτώσεις, οι οδηγίες μπορεί να μην εκτελεστούν ποτέ. Ακολουθεί ένα παράδειγμα ενδεικτικό της συνάρτησηςτων βρόχων do while :

function function1() {
var sWord = " "
do {
sWord = prompt("Πληκτρολογήστε τη λέξη \'Τέλος\' για να σταματήσετε-->
το βρόγχο", "")
}
while(sWord != "Τέλος")
alert("Ο βρόγχος ολοκληρώθηκε")
}
Ακολουθεί η βασική μορφή του βρόγχου do while
do {
κώδικας που θα εκτελεστεί
}
while(έκφραση συνθήκης)

Στο παράδειγμα αυτό μπορείτε να δείτε ότι η πρόταση do while ξεκινάει εμφανίζοντας το πλαίσιο προτροπής (το πλαίσιο θα εμφανισθεί ακόμη και αν η sWord περιέχει τη λέξη Τέλος). Τα δεδομένα από το πλαίσιο διαλόγου τοποθετούνται στην sWord. Στη συνέχεια βλέπετε το while να ακολουθείτε από μια έκφραση συνθήκης σε παρενθέσεις. Αν η έκφραση είναι true, το πρόγραμμα γερνάει πίσω στη γραμμή do. Αν είναι false πηδάει μια γραμμή παρακάτω και εμφανίζει το πλαίσιο alert.

Ίσως σε μερικές περιπτώσεις μπορείτε να αναπαράγετε έναν βρόγχο do while επαναλαμβάνοντας το κώδικα που θέλετε να εκτελεστεί. Δείτε το παρακάτω παράδειγμα:

function function1() {
var sWord = "Τέλος"
sWord = prompt (" Πληκτρολογήστε τη λέξη \'Τέλος\'για να -->
σταματήσετε το βρόγχο", "")
while (sWord != "Τέλος") {
sWord = prompt (" Πληκτρολογήστε τη λέξη \'Τέλος\'για να -->
σταματήσετε το βρόγχο", "")
}
alert ("Ο βρόγχος ολοκληρώθηκε")
}

Σκοπός του do while είναι να εξαναγκάσει τη ροή του προγράμματος ακόμη και αν η συνθήκη while είναι false. Ξεκινήσαμε εισάγοντας στην sWord τη λέξη Τέλος. Στην περίπτωση αυτή ο βρόγχος while δεν θα έτρεχε καν, γιατί η συνθήκη είναι false. Η sWord περιέχει τη λέξη Τέλος.Γι'αυτό απλά βάλαμε τον ίδιο κώδικα στον βρόγχο while παρόλο που η sWord περιέχει ήδη τη λέξη. Στη συνέχεια αν ο χρήστης δεν γράψει τη λέξη, θα ξεκινήσει ο βρόγχος while.(Αν ο χρήστης πατήσει OK χωρίς να γράψει κάτι, η sWord θα αδειάσει.)

Ένας άλλος τρόπoς χειρισμού είναι ο ακόλουθος :

while (true) {
κώδικας που θα εκτελεστεί
if(!συνθήκη)
break
}

Βάζοντας true σε παρένθεση, σιγουρεύεστε τουλάχιστον ότι ο βρόγχος while θα ξεκινήσει. Η πρόταση if, στη συνέχεια καθορίζει αν ο βρόγχος θα συνεχιστεί ή όχι.

Τερματισμός Ενός Βρόγχου - Break

Για να σταματήσουμε ένα βρόγχο πρόωρα, χρησιμοποιούμε την πρόταση break. Η πρόταση αυτή κάνει το πρόγραμμα να μεταπηδήσει στη γραμμή μετά τον βρόγχο. Υπάρχουν φορές που η χρήση μιας έκφρασης συνθήκης δεν είναι αρκετή για να σταματήσει ένας βρόγχος και θέλετε να αποφασίσει το πρόγραμμα σας μέσα στο βρόγχο τι θα κάνει. Μπορείτε να χρησιμοποιήσετε break μέσα σε προτάσεις for και while. Στο επόμενο παράδειγμα με το πάτημα ενός κουμπιού Cancel ο χρήστης προκαλεί break:

function function() {
var bResult
for (i=1; i<4; i++) {
bresult = confirm (" i = " + i +'\n Πατήστε Cancel για να εκτελέσετε μια -->
πρόταση \'break\", "")
if (bResult = = false) {
break;
}
}
alert("Ο βρόγχος ολοκληρώθηκε\ni = " + i)
}

Το παράδειγμα είναι μια πρόταση που θα επαναλαμβάνεται μέχρι το i να γίνει ίσο με 4. Ο βρόγχος εμφανίζει ένα πλαίσιο επιβεβαίωσης . Όταν ο χρήστης πατήσει ένα κουμπί, αξιολογείτε η μεταβλητή Boolean- αληθής αν πατάει το OK, ψευδής αν πατάει το Cancel. Η τιμή τοποθετείτε στην μεταβλητή bResult. Η επόμενη εντολή που εκτελείτε, αμέσως αφού κλείσει το πλαίσιο διαλόγου, είναι μια πρόταση if. Αυτή ελέγχει τη bResult. Αν είναι false η έκφραση συνθήκης είναι αληθής και τρέχει η εντολή που βρίσκεται στις επόμενες αγκύλες. Η εντολή αυτή είναι η break. Η τελευταία γραμμή χρησιμοποιεί την alert για να εμφανίσει ένα πλαίσιο που μας λέει πως ο βρόγχος τερμάτισε.

Επαναφορά στη Αρχή του Βρόγχου - Continue

Όπως και το break, έτσι και το continue είναι ένας τρόπος ελέγχου των βρόχων for ή while, με την διαφορά ότι ο βρόγχος δεν σταματάει. Αντίθετα, η πρόταση continue επιστρέφει αμέσως το πρόγραμμα στην αρχή του βρόγχου και ξεκινά ο επόμενος κύκλος. Με άλλα λόγια η continue παρέχει ένα τρόπο να σταματήσουμε την επεξεργασία των γραμμών κώδικα που ακολουθούν μέσα σ'ένα βρόγχο.

Όταν εκτελείται η πρόταση continue, το πρόγραμμα γυρνάει πίσω, στην έκφραση συνθήκης ενός βρόγχου while ή στην έκφραση συνθήκης ενός βρόγχου for. Δείτε τον παρακάτω βρόγχο while, για να καταλάβετε τι εννοούμε :

var bResult
var i = 0
while (i<4) {
bResult = confirm("i= " +i +"\n Πατήστε Cancel για να εκτελέσετε -->
μια πρόταση \'continue\' "," ")
if (bResult = = false ) {
continue;
}
i++
}
alert( "Ο βρόγχος ολοκληρώθηκε\ni ="+i )

Το παράδειγμα είναι ένας βρόγχος while που θα επαναλαμβάνεται μέχρι το i να γίνει ίσο με 4. Ο βρόγχος εμφανίζει ένα πλαίσιο επιβεβαίωσης.Το αποτέλεσμα από το πλαίσιο (true για OK false για Cancel) τοποθετείται στην μεταβλητή bResult.
Η πρόταση if κοιτάει την bResult. Αν αυτή περιέχει false - δηλαδή ο χρήστης πάτησε το κουμπί Cancel - τότε η έκφραση συνθήκης είναι αληθής και τρέχει η εντολή αμέσως μετά το {. Η εντολή αυτή είναι η continue, που γυρνάει το πρόγραμμα στην αρχή της πρότασης while, χωρίς να κάνει την πράξη i++. Άν η bResult περιέχει true- έχει πατηθεί το OK- τότε η έκφραση συνθήκης δεν είναι αληθής και δεν τρέχει η εντολή που είναι μέσα στις αγκύλες. Τρέχει, αντίθετα, η εντολή i++ και μετά γυρνάει στην αρχή του while.
Αν λοιπόν πατάτε συνέχεια το OK, ο βρόγχος τρέχει μέχρι να ολοκληρωθεί η διαδικασία. Άν πατήσετε το Cancel δεν θα καταλήξετε πουθενά. Απλά θα κολλήσει το πρόγραμμα, γιατί η τιμή του i δεν αυξάνεται ποτέ. Ουσιαστικά ο μόνος τρόπος για να βγείτε από το πρόγραμμα είναι να τον αφήσετε να ολοκληρωθεί. Θα πρέπει να πατήσετε μερικές φορές OK για να τελείωσει το πρόγραμμα.

Συναρτήσεις

Ο ορισμός μιας συνάρτησης

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

function Όνομα συνάρτησης ( ) {
οι εντολές που εκτελεί η συνάρτηση
}

Ο ορισμός μιας συνάρτησης ξεκινά πάντα με τη λέξη function ώστε ο browser που φορτώνει τη σελίδα να γνωρίζει ποια τμήματα του σεναρίου είναι συναρτήσεις.

Που τοποθετούνται οι συναρτήσεις

Μπορείτε να ορίσετε συναρτήσεις οπουδήποτε μέσα στην ιστοσελίδα, αλλά πρέπει να προσέχετε ώστε να τις ορίζετε πριν τις καλέσετε.

Ας δούμε μερικά παραδείγματα :

Παράδειγμα 1 :

<SCRIPT LANGUAGE = ''JavaScript''>
<!--
function1( )
function function1( ) {
alert ( ''Αυτή είναι η συνάρτηση function1 που τρέχει.'')
}
//-->
</SCRIPT>

Δεν χρειάζεται να κάνετε τίποτα σε αυτή τη σελίδα. Δεν υπάρχουν κουμπιά για να πατήσετε. Όταν η σελίδα φορτωθεί, εκτελείται η συνάρτηση και το μόνο που κάνει είναι να εμφανίσει ένα πλαίσιο με το κείμενο 'Αυτή είναι η συνάρτηση function1 που τρέχει'. Η κλήση της συνάρτησης γίνεται πριν τον ορισμό της, αλλά ο κώδικας λειτουργεί πολύ καλά. Αυτό σημαίνει ότι ο κώδικας μεταξύ του <SCRIPT και του </SCRIPT φορτώνεται στη μνήμη πριν εκτελεστεί και έτσι δεν έχει σημασία με ποια σειρά βάζετε τις συναρτήσεις.

Παράδειγμα 2 :

<SCRIPT LANGUAGE = ''JavaScript''>
<!--
function1( )
function function1( ) {
alert ( ''Αυτή είναι η συνάρτηση function1 που εκτελείται .'')
}
//-->
</SCRIPT>
<SCRIPT LANGUAGE = ''JavaScript''>
<!--
function1( ) {
//-->
</SCRIPT>

Είναι ίδιο με το προηγούμενο σενάριο, αλλά με διαφορετική σειρά. Ο browser διαβάζει ό,τι βρίσκει μεταξύ των ετικετών <SCRIPT> και </SCRIPT> και το εκτελεί. Μετά διαβάζει και εκτελεί το επόμενο τμήμα του σεναρίου.
 

Αρχική Σελίδα

Περιεχόμενα JAVASCRIPT

Παράρτημα Α

Προηγούμενο Κεφάλαιο