Η εντολή «switch» είναι μια εντολή απόφασης που προσπαθεί να συντομεύσει την χρήση πολλαπλών εντολών «if». Με την χρήση της «switch» αποφεύγουμε την χρήση πολλαπλών «if» τα οποία θα έκαναν πολύ δύσκολο τον έλεγχο του προγράμματος από την οπτική γωνία του προγραμματιστή, και συντακτικά θα ήταν δύσκολο να βρεθούν συγκεκριμένες περιπτώσεις. Ο τρόπος σύνταξης της «switch» έχει συγκεκριμένο τρόπο και γίνεται ως εξής:
switch(μεταβλητή){
case περίπτωση πρώτη:
...εντολές για πρώτη περίπτωση ...
break;
case περίπτωση δεύτερη:
...εντολές για δεύτερη περίπτωση ...
break;
default:
...εντολές για καμία από τις παραπάνω περιπτώσεις ...
break;
}
- Όπου «μεταβλητή» εισάγουμε το όνομα της μεταβλητής που θέλουμε να μελετήσουμε.
- Όπου «περίπτωση πρώτη» εισάγουμε τον έλεγχο που θέλουμε να κάνουμε σε αυτή την περίπτωση, ότι θα βάζαμε δηλαδή στις παρενθέσεις της «if».
- Παρομοίως για την «περίπτωση δεύτερη», «περίπτωση τρίτη» κ.ο.κ.
- Η εντολή «break» σημαίνει ότι θα σταματήσει η javascript την εκτέλεση του κώδικα της «switch» στο σημείο όπου θα βρεθεί, διαφορετικά η javascript θα εκτελούσε όλες τις εντολές από το σημείο που βρήκε την «case» που ταιριάζει με την περίπτωση. Όλες οι εντολές για κάθε περίπτωση ξεκινούν από την άνω και κάτω τελεία του «case» και τελειώνουν στο «break».
- Το «default» χρησιμοποιείται για όλες τις άλλες περιπτώσεις, είναι δηλαδή το «else» της «switch».
Σε αντίθεση με άλλες γλώσσες προγραμματισμού και scripting η javascript δεν επιτρέπει τις συνθήκες μέσα σε περιπτώσεις της «switch». Έτσι δεν μπορεί να ελεγχθεί μια περίπτωση της οποίας η θερμοκρασία για παράδειγμα είναι μικρότερη ή ίση του 15, αλλά μόνο αν είναι 15. Δεν μπορούμε έτσι να καθορίσουμε περιοχές τιμών μέσα σε μια «case» της «switch». Την χρησιμοποιούμε διακριτά για τιμές που γνωρίζουμε από πριν.
Ας υποθέσουμε πως δίνοντας έναν αριθμό από το 1 έως το 7 θέλουμε να μας επιστρέφεται η μέρα της εβδομάδας στην οποία αντιστοιχεί ξεκινώντας από την Δευτέρα. Αν χρησιμοποιούσαμε «if» , το αποτέλεσμα θα είχε ως εξής:
Αρχείο: if_switch.html
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Πολλαπλά if, else-if</title>
<script type='text/javascript'>
function check_day(x){
if(x==1){
alert("Δευτέρα");
}else if(x==2){
alert("Τρίτη");
}else if(x==3){
alert("Τετάρτη");
}else if(x==4){
alert("Πέμπτη");
}else if(x==5){
alert("Παρασκευή");
}else if(x==6){
alert("Σαββάτο");
}else if(x==7){
alert("Κυριακή");
}else{
alert("Δεν ισάχθηκε σωστός αριθμός!");
}
}
</script>
</head>
<body>
Εισάγετε εναν αριθμό ημέρας:
<input type='text' name='temp' id='temp' onchange='check_day(this.value);'>
</body>
</html>
Ας δούμε τώρα το παραπάνω πως μπορεί να υλοποιηθεί σε switch.
Αρχείο: switch.html
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Δοκιμή switch</title>
<script type='text/javascript'>
function check_day(x){
switch(Number(x)){
case 1:
alert("Δευτέρα");
break;
case 2:
alert("Τρίτη");
break;
case 3:
alert("Τετάρτη");
break;
case 4:
alert("Πέμπτη");
break;
case 5:
alert("Παρασκευή");
break;
case 6:
alert("Σαββάτο");
break;
case 7:
alert("Κυριακή");
break;
default:
alert("Δεν εισάχθηκε σωστός αριθμός");
break;
}
}
</script>
</head>
<body>
Εισάγετε εναν αριθμό ημέρας:
<input type='text' name='temp' id='temp' onchange='check_day(this.value);'>
</body>
</html>
Το αποτέλεσμα και των δυο είναι το ίδιο:
Παρατηρώντας την σύνταξη της «switch», βλέπουμε πως μας δίνεται μια πιο συγκεκριμένη δομή στον τρόπο με τον οποίο «εξετάζονται» οι περιπτώσεις. Έτσι είναι ευκολότερη η επεξεργασία και η προσθήκη γραμμών κώδικα στο μέλλον.