ΚΕΝΤΡΟ ΠΛΗ.ΝΕ.Τ. Ν. ΦΛΩΡΙΝΑΣ

Η Τεχνολογία JSP (JavaServer Pages)
(Μέρος 3 - Οι Εντολές της JSP)

 

Η Εντολή if

Η εντολή επιλογής if μάς δίνει τη δυνατότητα να επιλέξουμε διαφορετικές ενέργειες ανάλογα με το αποτέλεσμα μιας έκφρασης υπό συνθήκη. Η σύνταξη μιας εντολής if είναι η εξής :

            if (έκφραση_υπό_συνθήκη)

                        ΜπλοκΚώδικαJava

Αν η έκφραση_υπό_συνθήκη έχει τιμή true, θα εκτελεσθεί το ΜπλοκΚώδικαJava, αλλιώς η εκτέλεση θα συνεχισθεί με τις εντολές που βρίσκονται μετά από το ΜπλοκΚώδικαJava. Οι εκφράσεις υπό συνθήκη μπορούν να συνδυαστούν με τους δυαδικούς τελεστές && (and), || (or) και ! (not).

Ακολουθεί ένα απλό παράδειγμα με την εντολή if που εμφανίζει ένα κατάλληλο μήνυμα αν ένας χρήστης δεν μπορέσει να συνδεθεί επιτυχώς (log in).

<html>

<head>

<title> Η Εντολή if στην JSP </title>

</head>

<body>

<%      boolean userIsLogged = false;

boolean securityOn = true;

            if (!userIsLogged && securityOn) {%>

<h1> Προσοχή </h1>

Δεν έχετε συνδεθεί ακόμη με το σύστημα

<a> Κάντε κλικ εδώ για να συνδεθείτε </a>

            <% } %>

</body>

</html>

Ο πραγματικός κώδικας που θα καθόριζε την τιμή της μεταβλητής userIsLogged θα αποτελείτο από κάποιον μηχανισμό που θα σύγκρινε τα username και password που θα καταχωρούσε ο χρήστης μ’ αυτά που θα υπήρχαν σε μια βάση δεδομένων.

Μια εντολή if μπορεί να ακολουθείται από μια προαιρετική εντολή else για να μπορούμε να επιλέξουμε ανάμεσα σε δύο πιθανές ενέργειες ανάλογα με το αν η δυαδική έκφραση έχει τιμή true ή false.

Η σύνταξη μιας εντολής if/else είναι η εξής :

            if (έκφραση_υπό_συνθήκη)

                        ΜπλοκΚώδικαJava1

            else

                        ΜπλοκΚώδικαJava2

Αν η έκφραση_υπό_συνθήκη έχει τιμή true, θα εκτελεσθεί το ΜπλοκΚώδικαJava1, αλλιώς θα εκτελεσθεί το ΜπλοκΚώδικαJava2 και μετά η εκτέλεση θα συνεχισθεί με τις εντολές που βρίσκονται μετά από την εντολή if/ else.

Ακολουθεί ένα απλό παράδειγμα χρήσης της εντολής if/else στην JSP.

<html>

<head>

<title> Η Εντολή if/else if στην JSP </title>

</head>

<body>

<h1> Η τιμή του εισιτηρίου στο θέατρο είναι :

<%      int PersonAge = 11;

            double fullPrice = 20.40;

            double discount;

            double finalPrice;

            if (PersonAge <=5)

                        discount = 60;

            else

                        discount = 0;

            finalPrice = fullPricefullPrice * discount / 100;

%> <%=finalPrice%>

</body>

</html>

 

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

<html>

<head>

<title> Η Εντολή if/else if στην JSP </title>

</head>

<body>

<h1> Η τιμή του εισιτηρίου στο θέατρο είναι :

<%      int PersonAge = 11;

            double fullPrice = 20.40;

            double discount;

            double finalPrice;

            if (PersonAge <=3)

                        discount = 80;

            else if (PersonAge <=15)

                        discount = 50;

            else

                        discount = 0;

            finalPrice = fullPricefullPrice * discount / 100;

%> <%=finalPrice%>

</body>

</html>

Οι τιμές των μεταβλητών PersonAge και fullPrice θα έπρεπε κανονικά να δοθούν είτε από μια βάση δεδομένων ή από μια HTML φόρμα όπου θα μπορούσε να καταχωρίσει τιμές ο χρήστης.

 

Η Εντολή switch

Η εντολή switch είναι μια παραλλαγή της σειράς των εντολών if/else if και η σύνταξή της είναι ως εξής :

            switch (όρισμα) {

                        case τιμή1 :

                        ΚώδικαςJava1

                        case τιμή2 :

                        ΚώδικαςJava2

case τιμή3 :

                        ΚώδικαςJava3

            …

case τιμήΝ :

                        ΚώδικαςJavaΝ

            default:

                        ΚώδικαςJavaD

}

Το όρισμα θα πρέπει να είναι ένας ακέραιος ή ένας χαρακτήρας ή μια έκφραση που να παίρνει τιμή ακέραιου ή χαρακτήρα. Το σώμα μιας εντολής switch αποτελείται από μια σειρά εντολών case με τις αντίστοιχες τιμές τους. Οι τιμές αυτές θα πρέπει να είναι σταθεροί ακέραιοι ή σταθεροί χαρακτήρες. Η κάθε εντολή case συνδέεται και μ’ ένα μπλοκ κώδικα σε Java.

Η τιμή του ορίσματος συγκρίνεται με καθεμία από τις τιμές των εντολών case. Αν κάποια τιμή ταιριάζει, τότε θα εκτελεσθεί ο κώδικας της Java που βρίσκεται μετά την εντολή case και μέχρι το τελικό }. Αν καμία τιμή δεν ταιριάζει, θα εκτελεσθεί ο κώδικας της εντολής default.

Για παράδειγμα, αν η τιμή του ορίσματος ταιριάζει με την τιμή2, τότε θα εκτελεσθεί ο ΚώδικαςJava2, ο ΚώδικαςJava3 και όλοι οι υπόλοιποι μέχρι και τον ΚώδικαςJava2. Ακολουθεί ένα παράδειγμα χρήσης της εντολής switch.

<html>

<head>

<title> Η Εντολή switch στην JSP </title>

</head>

<body>

<%      String city ="Florina";

            switch (city) {

case "Florina" :        %>

<h1> Florina per sempre! </h1>

            <%                  break;

case "Kozani" :         %>

<h1>Kozani per sempre! </h1>

            <%                  break;

                        default : %>

<h1> Λάθος Πόλη! </h1>

            <%      }                      %>

</body>

</html>

Βέβαια, σε μια κανονική εφαρμογή, η τιμή του String city θα πρέπει να δοθεί είτε από μια βάση δεδομένων ή από ένα αντικείμενο. Η εντολή break έχει μια ειδική αποστολή και θα την δούμε αμέσως παρακάτω.

 

Η Εντολή break

Η εντολή break χρησιμοποιείται για να σταματήσει τη ροή της εκτέλεσης και να μας πάει στο τέλος του κώδικα. Αν δεν υπάρχει μια εντολή break στο τέλος του κάθε μπλοκ με κώδικα Java, τότε θα εκτελεσθούν όλα τα μπλοκς με κώδικα Java που βρίσκονται μετά την πρώτη εντολή case που ταιριάζει με την τιμή του ορίσματος.

Η εντολή break συνεχίζει την εκτέλεση με τις εντολές που ακολουθούν την εντολή switch. Οι εντολές break μπορούν να χρησιμοποιηθούν οπουδήποτε θέλουμε να διακόψουμε την κανονική ροή της εκτέλεσης, ακόμη και στις εντολές if, for και while.

 

Ο Βρόχος for

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

            for (αρχική_εντολή; συνθήκη; έκφραση_ενημέρωσης)

                        ΜπλοκΚώδικαJava

Με την αρχική_εντολή δίνουμε αρχική τιμή στη μεταβλητή επανάληψης, όπως για παράδειγμα i=0. Μετά υπολογίζεται η τιμή, αληθής ή ψευδής, της συνθήκης και αν η συνθήκη είναι αληθής (true), τότε εκτελείται μία φορά το ΜπλοκΚώδικαJava αλλιώς, αν η συνθήκη είναι ψευδής (false), η εκτέλεση συνεχίζεται με τις εντολές που ακολουθούν το σώμα της εντολής for.

Η συνθήκη μπορεί να είναι για παράδειγμα η i<=10. Αφού υπολογισθεί η τιμή της συνθήκης, εκτελείται η έκφραση_ενημέρωσης για να ενημερωθεί η τιμή της μεταβλητής επανάληψης, όπως για παράδειγμα i=i+1. Ακολουθεί ένα απλό παράδειγμα χρήσης της εντολής for για την εμφάνιση ενός μηνύματος 10 φορές.

<html>

<head>

<title> Ένας Απλός Βρόχος for στην JSP </title>

</head>

<body>

<%      int i;

            for(i=1; i<=10; i++) { %>

                                    Florina per sempre! : <%=i%><BR>

<%      } %>

</body>

</html>

 

Ο Βρόχος while

Ο βρόχος while επαναλαμβάνει ένα κομμάτι κώδικα Java όχι ορισμένες φορές αλλά για όσο χρόνο είναι αληθής (true) μια λογική συνθήκη. Η σύνταξη του βρόχου while είναι η εξής :

αρχική_εντολή;

            while (συνθήκη)

                        ΜπλοκΚώδικαJava

Αυτό σημαίνει ότι όσο είναι αληθής (true) η συνθήκη, θα εκτελείται το ΜπλοκΚώδικαJava. Μέσα στο ΜπλοκΚώδικαJava θα πρέπει να υπάρχει μια εντολή (έκφραση_ενημέρωσης) ώστε να γίνει κάποτε η συνθήκη ψευδής (false) και να βγούμε από τον βρόχο.

Ένας βρόχος while είναι ισοδύναμος με τον εξής βρόχο for :

            for (; συνθήκη;)

                        ΜπλοκΚώδικαJava

 

Αν η συνθήκη πάρει τιμή true, ο βρόχος θα επαναληφθεί μέχρι η συνθήκη να πάρει τιμή false. Ακολουθεί ένα κομμάτι κώδικα με την εντολή while.

           

            i = 0;

            while (i<20) {

                        …

                        i = i + 1;

                       

            }

 

Η Εντολή continue

Η εντολή continue χρησιμοποιείται μόνο στους βρόχους επανάληψης για να σταματήσει την κανονική ροή της εκτέλεσης, να πάει στο τέλος του μπλοκ εντολών και να συνεχίσει με μια καινούργια επανάληψη.

Ακολουθεί ένα παράδειγμα χρήσης της εντολής continue.

           

            i = 0;

            while (i<20) {

                        …

                        i = i + 1;

                        if (i==5) continue;

                       

            }

 

Ο Βρόχος do/while

Ο βρόχος do/while είναι παρόμοιος με τον βρόχο while, δηλ. μας δίνει τη δυνατότητα να δημιουργήσουμε έναν βρόχο υπό συνθήκη για ένα μπλοκ με εντολές Java, αλλά με τη διαφορά ότι κάνει τον έλεγχο της συνθήκης για την επανάληψη ή όχι του βρόχου στο τέλος του βρόχου και όχι στην αρχή του βρόχου, όπως κάνει η εντολή while.

Αυτό είναι χρήσιμο όταν ο βρόχος θα πρέπει να εκτελεσθεί μία τουλάχιστον φορά. Η σύνταξη του βρόχου do/while είναι η εξής :

do

ΜπλοκΚώδικαJava

            while (συνθήκη)

Αν η συνθήκη πάρει τιμή true, ο βρόχος θα επαναληφθεί μέχρι η συνθήκη να πάρει τιμή false. Ακολουθεί ένα κομμάτι κώδικα με την εντολή do/ while.

           

            i = 0;

            do{

                        …

                        i = i + 1;

                       

            } while (i<20);

 

back.gif (9867 bytes)

Επιστροφή