Προϋποθέσεις στην PHP. Δήλωση υπό όρους if στην PHP Elseif else παράδειγμα δύο γραμμών

Ορισμένες πηγές λένε ότι η δήλωση επιλογής if else είναι μια αυτόνομη δήλωση. Αλλά αυτό δεν είναι αλήθεια, εάν αλλιώς είναι απλώς μια μορφή γραφής της δήλωσης επιλογής if. Η δήλωση if else επιτρέπει στον προγραμματιστή να ορίσει μια ενέργεια όταν η συνθήκη είναι αληθής και μια εναλλακτική ενέργεια όταν η συνθήκη είναι ψευδής. Ενώ εάν σας επιτρέπεται να προσδιορίσετε την ενέργεια εάν η συνθήκη είναι αληθής.

Η σύνταξη για τη σύνταξη της δήλωσης επιλογής if else είναι:

Εάν (/*συνθήκη προς έλεγχο*/) ( /*σώμα του χειριστή επιλογής 1*/; ) αλλιώς ( /*σώμα του χειριστή επιλογής 2*/; )

Έχει ως εξής: «Αν η συνθήκη που ελέγχεται είναι αληθής, τότε επιλέξτε το σώμα δήλωσης 1, διαφορετικά (δηλαδή, η συνθήκη που ελέγχεται είναι ψευδής) ικανοποιείται επιλέξτε το σώμα δήλωσης 2". Προσέξτε πώς γράφεται η δήλωση if else. Η λέξη αλλιώς μετατοπίζεται ειδικά προς τα δεξιά, έτσι ώστε ο κώδικας του προγράμματος να είναι σαφής και βολικός στην ανάγνωση.

Ας δούμε το πρόβλημα από το προηγούμενο θέμα, χρησιμοποιώντας το if else . Επιτρέψτε μου να σας υπενθυμίσω την κατάσταση του προβλήματος: "Δεδομένων δύο αριθμών, πρέπει να τους συγκρίνετε."

// if_else.cpp: Καθορίζει το σημείο εισόδου για την εφαρμογή της κονσόλας. #include "stdafx.h" #include χρησιμοποιώντας namespace std? int main(int argc, char* argv) ( int a, b; cout<< "Vvedite pervoe chislo: "; cin >>a; cout<< "Vvedite vtoroe chislo: "; cin >>β; αν (a >= b) // αν το a είναι μεγαλύτερο ή ίσο του b, τότε ( cout<< a << " >= " << b << endl; } else // иначе { cout << a << " <= " << b << endl; } system("pause"); return 0; }

Σε αυτόν τον κωδικό μας ενδιαφέρειγραμμές 14-20. Αυτές οι γραμμές διαβάζονται ως εξής: ανένα (πρώτος αριθμός) μεγαλύτερος ή ίσος τουσι (δεύτερος αριθμός) και, στη συνέχεια, εκτελέστε την εντολή εξόδουγραμμή 16

Cout<< a << " >= " << b << endl;

διαφορετικά εκτελέστε την εντολή εξόδου στο γραμμή 19

Cout<< a << " <= " << b << endl;

Σε αυτό το παράδειγμα χρησιμοποιούμε τους τελεστές σχέσης >= και<= . Условие перехода не совсем правильно, так как условие будет ложно только в том случае, если первое число будет меньше второго, во всех остальных случаях условие истинно. Значит, γραμμή 19πρέπει να το γράψεις έτσι

Cout<< a << " < " << b << endl; // в кавычках записать не меньше или равно, а просто меньше.

Και έτσι λειτούργησε το πρόγραμμα (βλ. Εικόνα 1).

Vvedite pervoe chislo: 15 Vvedite vtoroe chislo: -4 15 >= -4 Για να συνεχίσετε, πατήστε οποιοδήποτε πλήκτρο. . .

Εικόνα 1 - Δήλωση επιλογής εάν διαφορετικά

Επιτρέψτε μου να σας δείξω ένα άλλο παράδειγμα χρήσης εντολών επιλογής if else (τις λεγόμενες ένθετες εντολές if else για πολλαπλή επιλογή).

Το έργο:
Δημιουργήστε έναν αλγόριθμο που βρίσκει την τιμή του y, εάν y=x, για το x<0; у=0, при 0<=х<30; у=х 2 , при х>=30;

// inif_else.cpp: Καθορίζει το σημείο εισόδου για την εφαρμογή της κονσόλας. #include "stdafx.h" #include χρησιμοποιώντας namespace std? int main(int argc, char* argv) ( int x, y; cout<< "Vvedite x: "; cin >>x; αν (χ< 0) { y = x; // выполняется, если х меньше нуля } else { if ((x >= 0) && (x< 30)) { y = 0; // выполняется, если х больше либо равно нуля и меньше 30 } else { if (x >= 30) ( y = x * x; // εκτελείται αν το x είναι μεγαλύτερο ή ίσο με 30 ) ) ) cout<< "y=" << y << endl; system("pause"); return 0; }

Υπάρχουν τρεις πιθανές περιπτώσεις σε αυτό το πρόβλημα:
1η περίπτωση: x< 0 ;
2η περίπτωση: το x βρίσκεται στην περιοχή από 0 (συμπεριλαμβανομένου του 0) έως 30.
3η περίπτωση: το x είναι μεγαλύτερο ή ίσο με 30.

Παρατηρήστε την καινοτομία!! ΣΕ Γραμμή 17μια τέτοια καταχώρηση: εάν ((x >= 0) && (x< 30)) , Χρησιμοποίησα σύμβολα && - αυτό είναι . Λογική λειτουργία ΚΑΙΤο && απαιτείται για να συνδυαστούν πολλές απλές συνθήκες σε μια σύνθετη συνθήκη. Στην περίπτωσή μας, είναι απαραίτητο να ελέγξουμε την αλήθεια δύο συνθηκών: η πρώτη – x >= 0, η δεύτερη – x< 30 . Все проверяемое условие будет истинно, если истинны два простых условия. В математике правильной записью считается такая запись: 0 <= x < 30 , а в С++ правильной записью считается вот такая запись: (x >= 0) && (x< 30) или такая 0 <= x && x < 30 . Кстати круглые скобочки () && () не обязательны, так как условия простые, но для уверенности, я прописываю, всегда, данные скобочки и вам советую.

Ανάλυση συγκεκριμένης περίπτωσης:

Ας υποθέσουμε ότι ο χρήστης έβαλε τον αριθμό 31. Ξεκινώντας από γραμμές 12, ελέγχονται οι συνθήκες. Έχει ως εξής: «Αν x (31 στην περίπτωσή μας)< 0, то выполнить оператор в γραμμή 14" Επειδή όμως 31 > 0 η συνθήκη είναι ψευδής, προχωράμε στη λέξη αλλιώς (αλλιώς) γραμμή 15. Στη συνέχεια, ελέγχουμε αν ο αριθμός 31 περιλαμβάνεται στο καθορισμένο διάστημα. Διαβάζεται ως εξής: αν x>=0 και x<30στη συνέχεια εκτελέστε τη δήλωση στη γραμμή 19 . Επειδή όμως ο αριθμός 31 δεν περιλαμβάνεται στο δεδομένο διάστημα, η συνθήκη είναι ψευδής. Λεπτομέριες γραμμή 17: το πρόγραμμα θα ελέγξει πρώτα την πρώτη απλή συνθήκη x >= 0 - είναι αληθής, και αν η πρώτη είναι αληθής, τότε το πρόγραμμα θα προχωρήσει στον έλεγχο της δεύτερης απλής συνθήκης x< 30 – оно ложно. Следовательно всё составное условие ложно, ведь в составном условии у нас используется логическая операция && , а это значит, что все составное условие истинно только в том случае, когда истинны оба простых условия. Переходим к else (иначе), здесь у нас последний if , (γραμμή 22). Το τεστ είναι x >= 30. Διαβάζεται ως εξής: Εάν x >= 30, τότε εκτελέστε την εντολή που βρίσκεται στη γραμμή 24 . Τέλος, η συνθήκη είναι αληθής, άρα η δήλωση in γραμμή 24. ΚΑΙ γραμμή 28εκτυπώνει την τιμή που προκύπτει. Λοιπόν, αυτό ήταν όλο, εξετάσαμε το πρόγραμμα μέχρι την παραμικρή λεπτομέρεια. Το αποτέλεσμα του προγράμματος εάν ο χρήστης εισήγαγε τον αριθμό 31 (βλ. Εικόνα 2)

Ανέστειλε το AdBlock σε αυτόν τον ιστότοπο.

Τώρα που ασχοληθήκαμε με εκφράσεις υπό όρους, μπορούμε να προχωρήσουμε στο κύριο θέμα του μαθήματος - υπό όρους χειριστή.

Εάν -- else πρότυπο δήλωσης

Υπάρχουν δύο κύριες επιλογές εδώ:

Λίστα 1.

// πρώτη επιλογή εάν (conditional_expression) operator_1; // δεύτερη επιλογή εάν (conditional_expression) operator_1; other operator_2;

Λοιπόν, και φωτογραφίες, φυσικά. Πού θα ήμασταν χωρίς φωτογραφίες;

Εικ. 1 Μπλοκ διαγράμματα της πρότασης if-else.

Αυτός ο χειριστής λειτουργεί έτσι. Υπολογίζεται η τιμή της έκφρασης υπό όρους. Εάν το αποτέλεσμα είναι αληθές, τότε εκτελείται ο operator_1 από τον κύριο κλάδο και εάν είναι false, τότε είτε δεν συμβαίνει τίποτα (στην πρώτη επιλογή) είτε ο operator_2 από τον πλευρικό κλάδο εκτελείται (στη δεύτερη επιλογή).

Σας προτείνω να το καταλάβετε αμέσως με παραδείγματα. Για παράδειγμα, τι πιστεύετε ότι θα βγει ο παρακάτω κώδικας; Ελέγξτε την εικασία σας.

Λίστα 2.

#περιλαμβάνω int main(void) ( if (1) printf("TRUE!\n"); else printf("FALSE!\n"); return 0; )

Λοιπόν, ναι, έτσι είναι, θα τυπώσει TRUE! . Η συνθήκη είναι αληθής. Δεν έχετε ξεχάσει ότι μία είναι η αλήθεια, έτσι δεν είναι; Θα σου πω κάτι τρομερό τώρα. Κάθε αριθμός μη μηδενικός εκλαμβάνεται ως αληθής. Έλεγξέ το μόνος σου.

Εντάξει, εδώ είναι ένα παράδειγμα. Τι πιστεύετε ότι θα βγάζει αυτό το πρόγραμμα;

Λίστα 3.

#περιλαμβάνω int main(void) ( if (0) printf("FALSE!\n"); return 0; )

Ελπίζω να δώσατε τη σωστή απάντηση και να μην σας μπέρδεψε η γραμμή με την έξοδο FALSE! , που πρόσθεσα ειδικά για να σας μπερδέψω. Ναι, αυτό το πρόγραμμα δεν θα βγάζει τίποτα. Η συνθήκη στις αγκύλες είναι ψευδής, που σημαίνει ότι η εντολή δεν θα εκτελεστεί. Όλα είναι σύμφωνα με τους κανόνες.

Ας δώσουμε ένα ακόμη παράδειγμα για να το ενισχύσουμε αυτό. Να είστε εξαιρετικά προσεκτικοί, σας έχω ετοιμάσει τα πάντα εκεί. Τι θα βγάζει λοιπόν αυτός ο κώδικας;

Λίστα 4.

#περιλαμβάνω int main(void) ( int x = 12; if (!(!(x%3 == 0) && !(x%2 == 0))) printf("kratno\n"); else printf("ne kratno\n"); επιστροφή 0;)

Πιστεύω ότι τα κατάφερες! Αν δεν πετύχει, μην αποθαρρύνεστε – θα υπάρχει ακόμα χρόνος για εξάσκηση.

Λοιπόν, τώρα ας μιλήσουμε για τις αποχρώσεις - ως συνήθως, είναι εκεί.

Μόνο ΜΙΑ πρόταση μπορεί να γραφτεί σε κάθε κλάδο μιας πρότασης υπό όρους.

Εδώ, δείτε ένα παράδειγμα.

Λίστα 5.

#περιλαμβάνω < 0) printf("x = %d\n", x); x = (-1)*x; printf("%d\n", x); return 0; }

Φαίνεται ότι το πρόγραμμα πρέπει να λειτουργεί έτσι. Ο χρήστης εισάγει έναν ακέραιο αριθμό. Εάν ο αριθμός είναι μικρότερος από το μηδέν, τότε αλλάξτε το πρόσημά του στο αντίθετο. Αλλιώς δεν κάνουμε τίποτα. Μετά από αυτό, εμφανίζουμε τον αριθμό στην οθόνη της κονσόλας.

Τώρα στρέψτε την προσοχή σας στην οθόνη.


Εικ.2 Αποτέλεσμα του προγράμματος Λίστα 11

Αλλά υπάρχει λύση! Και αυτή η απόφαση είναι σύνθετος χειριστής(). Εάν περικλείουμε πολλές εντολές σε σγουρές αγκύλες, θα αντιμετωπίζονται ως μία μεμονωμένη πρόταση. Επομένως, για να λειτουργεί σωστά το πρόγραμμα, προσθέτουμε έναν σύνθετο τελεστή σε αυτό:

Λίστα 6.

#περιλαμβάνω int main(void) ( int x = 0; scanf("%d", &x); if (x< 0){ printf("x = %d\n", x); x = (-1)*x; } printf("%d\n", x); return 0; }

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

Μέσα στις δομές ελέγχου if-else, μπορείτε να χρησιμοποιήσετε οποιαδήποτε δομή γλώσσας, συμπεριλαμβανομένης μιας άλλης δομής if-else.

Όπως αυτό για παράδειγμα:

Λίστα 7.

#περιλαμβάνω int main(void) ( int x = 0; scanf("%d", &x); if (x< 0) { printf("Negative!\n"); } else { if (x == 0){ printf("Zero!\n"); } else { printf("Positive!\n"); } } return 0; }

Νομίζω ότι είναι σαφές ότι χρησιμοποιώντας ένθετες εντολές υπό όρους, μπορείτε να δημιουργήσετε μια κατασκευή παρόμοια με τη δήλωση επιλογής διακόπτη.

Η χρήση ένθετων εντολών υπό όρους εισάγει ένα άλλο χαρακτηριστικό.

Το else αναφέρεται πάντα στο πλησιέστερο αν αυτό δεν έχει το δικό του άλλο

Για παράδειγμα:

Λίστα 8.

Αν (n > 0) αν (a > b) z = a; αλλιώς z = b;

Σύμφωνα με τον κανόνα μας, το else αναφέρεται στο εσωτερικό (δεύτερο) εάν . Αν θέλουμε να εφαρμόσουμε αλλιώς στο εξωτερικό (πρώτο) if , τότε μπορούμε να χρησιμοποιήσουμε τον σύνθετο τελεστή.

Λίστα 9.

Αν (n > 0) ( αν (a > b) z = a; ) αλλιώς z = b;

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

Το μάθημα θα καλύπτει εντολές php υπό όρους: τη δήλωση if και την εντολή switch

Οι εντολές υπό όρους της PHP αντιπροσωπεύονται από τρεις κύριες δομές:

  • χειριστή κατάστασης αν,
  • χειριστή διακόπτη διακόπτης
  • Και τριαδικός χειριστής.

Ας ρίξουμε μια πιο προσεκτική ματιά σε καθένα από αυτά.

Δήλωση PHP if

Εικόνα 3.1. Δήλωση IF υπό όρους, σύντομη έκδοση


Ρύζι. 3.2. ΑΝ ΑΛΛΟ Σύνταξη δήλωσης υπό όρους


Ρύζι. 3.3. Πλήρης σύνταξη της υπό όρους δήλωσης IF elseif

Ας συνοψίσουμε:

Πλήρης σύνταξη:

if (συνθήκη) ( // εάν η συνθήκη είναι αληθής τελεστής1; τελεστής2; ) elseif(συνθήκη) (τελεστής1; ... ) else ( // εάν η συνθήκη είναι ψευδής τελεστής1; τελεστής2; )

  • Η συντομευμένη σύνταξη μπορεί δεν περιέχουν μέρη της ρήτρας else και δεν περιέχουν πρόσθετη συνθήκη elseif
  • Αντί για τη συνάρτηση λέξη elseif, μπορείτε να γράψετε else if (ξεχωριστά)
  • Μπορεί να υπάρχουν πολλά otherifs σε ένα if construct. Η πρώτη έκφραση elseif ίση με TRUE θα εκτελεστεί.
  • Εάν υπάρχει μια εναλλακτική συνθήκη elseif, η ρήτρα else πρέπει να είναι τελευταία στη σύνταξη.

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

Ρύζι. 3.4. Δήλωση υπό όρους If και Endif σε php

Παράδειγμα:

if($x > $y): η echo $x." είναι μεγαλύτερη από ".$y; elseif($x == $y): // όταν χρησιμοποιείτε το ":" δεν μπορείτε να γράψετε ξεχωριστά αλλιώς εάν το echo $x." ισούται με ".$y; else: echo $x." not > and not = ".$y; τέλος εαν;

Σπουδαίος:Όταν χρησιμοποιείτε άνω και κάτω τελεία αντί για σγουρά τιράντες σε μια κατασκευή, το elseif δεν μπορεί να γραφτεί με δύο λέξεις!

Λογικές πράξεις σε μια συνθήκη

Η συνθήκη if σε παρένθεση μπορεί να περιέχει τις ακόλουθες λειτουργίες:

Παράδειγμα:ελέγξτε την τιμή μιας αριθμητικής μεταβλητής: εάν είναι μικρότερη ή ίση με 10, εμφανίστε ένα μήνυμα "ένας αριθμός μικρότερος ή ίσος του 10", διαφορετικά εμφανίστε ένα μήνυμα "αριθμός μεγαλύτερος από 10"


Λύση:

$number=15; εάν ($ αριθμός<=10) { echo "число меньше или равно 10"; } else { echo "число больше 10"; }

Τα μπλοκ κώδικα PHP μπορούν να σπάσουν, ας δούμε ένα παράδειγμα:

Παράδειγμα:Εμφάνιση κώδικα html στην οθόνη "α ισούται με 4", αν η μεταβλητή $a είναι πραγματικά ίση με 4


1 Λύση:
1 2 3 4

2 Λύση:

1 2 3 Α ισούται με 4

Α ισούται με 4

php job 3_1:Εμφανίστε τη μετάφραση των χρωμάτων από τα αγγλικά στα ρωσικά, ελέγχοντας την τιμή της μεταβλητής (στην οποία έχει εκχωρηθεί το χρώμα: $a="blue")


php job 3_2:Βρείτε το μέγιστο των τριών αριθμών

Πράξεις σύγκρισης και ο κανόνας του ψέματος

Η κατασκευή if σε παρένθεση πρέπει να περιέχει μια λογική έκφραση ή μεταβλητή, η οποία εξετάζεται από την άποψη της άλγεβρας της λογικής, επιστρέφοντας τις τιμές είτε true είτε false

Εκείνοι. μια μεμονωμένη μεταβλητή μπορεί να λειτουργήσει ως συνθήκη. Ας δούμε ένα παράδειγμα:

1 2 3 4 $a = 1 ; αν ($a) (ηχώ $a;)

$a=1; αν ($a) (ηχώ $a;)

Στο παράδειγμα, ο μεταφραστής γλώσσας PHP θα θεωρήσει τη μεταβλητή σε αγκύλες ως κανόνα ψεύδους:

Κανόνας ΨΕΜΑΤΟΣ ή αυτό που θεωρείται ψευδές:

  • λογικός Ψευδής
  • ολόκληρο μηδέν ( 0 )
  • πραγματικό μηδέν ( 0.0 )
  • κενή γραμμήκαι χορδή «0»
  • πίνακας χωρίς στοιχεία
  • αντικείμενο χωρίς μεταβλητές
  • ειδικού τύπου ΜΗΔΕΝΙΚΟ

Έτσι, στο εξεταζόμενο παράδειγμα, η μεταβλητή $a είναι ίση με ένα, κατά συνέπεια η συνθήκη θα είναι αληθής και ο τελεστής echo $a. θα εμφανίσει την τιμή της μεταβλητής.

php job 3_3:δίνεται μια μεταβλητή a με τιμή συμβολοσειράς. Εάν το a είναι ίσο με το όνομα, τότε εκτυπώστε "Γεια, όνομα!", εάν το a είναι ίσο με μια κενή τιμή, τότε η έξοδος "Γεια σου ξένε!"

Λογικές κατασκευές ΚΑΙ Ή και ΟΧΙ στον υπό όρους τελεστή

  1. Μερικές φορές είναι απαραίτητο να προβλεφθεί η εκπλήρωση πολλών προϋποθέσεων ταυτόχρονα. Στη συνέχεια οι συνθήκες συνδυάζονται λογικός τελεστής ΚΑΙ — && :
  2. $a=1; if ($a>0 || $a>1) ( echo "a > 0 ή a > 1"; )

  3. Για να υποδείξετε εάν μια συνθήκη είναι ψευδής, χρησιμοποιήστε το λογικός τελεστής ΟΧΙ — ! :
  4. 1 2 3 4 $a = 1 ; εάν (! ($a< 0 ) ) { echo "a не < 0" ; }

    $a=1; αν (!($a<0)) { echo "a не < 0"; }

Εναλλαγή χειριστή PHP

Ο χειριστής διακόπτη ή ο "διακόπτης" αντικαθιστά πολλές διαδοχικές εάν κατασκευάζονται. Με αυτόν τον τρόπο, συγκρίνει μια μεταβλητή με πολλαπλές τιμές. Έτσι, αυτό είναι το πιο βολικό μέσο για την οργάνωση πολυκλαδικών.

Σύνταξη:

1 2 3 4 5 6 7 8 9 10 διακόπτης ($variable) (περίπτωση "value1" : operator1 ; break ; case "value2" : operator2 ; break ; case "value3" : operator3 ; break ; [ default : operator4 ; break ; ] )

switch($variable)( case "value1": operator1; break; case "value2": operator2; break; case "value3": operator3; break; )

  • Ο χειριστής μπορεί να ελέγξει τόσο τις τιμές συμβολοσειράς (τότε καθορίζονται σε εισαγωγικά) όσο και τις αριθμητικές τιμές (χωρίς εισαγωγικά).
  • Απαιτείται η δήλωση break στην κατασκευή. Φεύγει από την κατασκευή εάν η συνθήκη είναι αληθής και ο τελεστής που αντιστοιχεί στη συνθήκη εκτελείται. Χωρίς διακοπή, όλες οι δηλώσεις υπόθεσης θα εκτελούνται ανεξάρτητα από την αλήθεια τους.

Ρύζι. 3.5. Διακόπτης δήλωσης υπό όρους


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


Λύση:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 $names = πίνακας ("Ivan" , "Peter" , "Semyon" ) ; διακόπτης ($names [ 0 ] ) ( case "Peter" : echo "Hello, Petya!" ; break ; case "Ivan" : echo "Hello, Vanya!" ; break ; case "Semyon" : echo "Hi, Vanya! " ; break ; default : echo "Γεια, $names!"; Διακοπή ;

)

$names=array("Ivan","Peter","Semyon"); switch($names)( case "Peter": echo "Hello, Petya!"; break; case "Ivan": echo "Hello, Vanya!"; break; case "Semyon": echo "Hello, Vanya!"; break ; προεπιλογή: echo "Γεια, $names!")

  • php job 3_4:
  • Δημιουργήστε μια μεταβλητή $day και αντιστοιχίστε της μια αυθαίρετη αριθμητική τιμή Χρησιμοποιώντας την κατασκευή του διακόπτη, εκτυπώστε τη φράση«Είναι εργάσιμη μέρα»
  • , εάν η τιμή της μεταβλητής $day εμπίπτει στο εύρος των αριθμών από το 1 έως το 5 (συμπεριλαμβανομένων) Εκτυπώστε τη φράση«Είναι ρεπό»
  • , εάν η τιμή της μεταβλητής $day εμπίπτει στο εύρος των αριθμών από το 1 έως το 5 (συμπεριλαμβανομένων) , εάν η τιμή της μεταβλητής $day είναι ίση με τους αριθμούς 6 ή 7"Άγνωστη μέρα"

, εάν η τιμή της μεταβλητής $day δεν εμπίπτει στο εύρος των αριθμών από το 1 έως το 7 (συμπεριλαμβανομένων)

1 2 3 4 5 6 7 8 9 10 11 12 Συμπληρώστε τον κωδικό: ... διακόπτης (... ) ( case 1 : case 2 : ... echo«Είναι εργάσιμη μέρα»

; Διακοπή ;

περίπτωση 6 : ... προεπιλογή : ... )

Switch(...)( case 1: case 2: ... echo "It's a work day"; break; case 6: ... default: ... )Τριαδικός τελεστής PHP

Τριαδικός χειριστής

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

  • κατάσταση? χειριστής1 : χειριστής2 ;
  • Όπως και άλλες γλώσσες προγραμματισμού, η PHP έχει δηλώσεις επιλογής. Υπάρχουν τρεις τύποι συνολικά:
  • υπό όρους δήλωση αν...άλλο ;

διακόπτης διακόπτης ;

λειτουργία υπό όρους (? );

Αξίζει να σημειωθεί ότι στην PHP δεν υπάρχει άνευ όρων άλμα στην ετικέτα goto, αλλά παρόλα αυτά, η λέξη-κλειδί goto είναι δεσμευμένη.

Σε αυτό το σεμινάριο θα εξετάσουμε τη δήλωση if...else και τις λειτουργίες υπό όρους και το επόμενο σεμινάριο θα καλύψει τον διακόπτη διακόπτη.Η σύνταξη if...else είναι η ίδια όπως στο C: //αν το uslovie είναι αληθινό, τότε φτάνουμε εδώχειριστής1; //σε περίπτωση ενός χειριστή, {χειριστής2; ... ) άλλο// προαιρετικός //αν το uslovie είναι αληθινό, τότε φτάνουμε εδώ//αν το uslovie είναι ψευδές, τότε πάμε εδώ χειριστής3; ... } ?>

χειριστής4;

  • //Τα σγουρά τιράντες είναι προαιρετικά
  • Όπως σημειώνεται στα σχόλια του κώδικα, τα σγουρά τιράντες () δεν είναι απαραίτητα εάν έχουμε μόνο μία δήλωση. Εφόσον η συνθήκη μπορεί να είναι είτε true (1) είτε false (0), θα εκτελεστεί είτε ο τελεστής1, ο τελεστής2, κ.λπ., είτε ο τελεστής 3, ο τελεστής 4 κ.λπ.

Ακολουθεί ένα συγκεκριμένο παράδειγμα στην PHP:

//Ορισμός τιμών μεταβλητών$num1 = 10; $num2 = 7; αν ($num1 > $num2) ( //η συνθήκη είναι αληθής, που σημαίνει ότι φτάνουμε εδώ echo "Η συνθήκη είναι αληθής επειδή 10 > 7
"; $num1+=$num2; // προσθέστε τη μεταβλητή $num2 σε $num1. echo "\$num1 = ". $num1; // το αποτέλεσμα θα είναι 17) αλλιώς ηχώ "Αφού η κατάσταση είναι θετική, δεν φτάνουμε εδώ"? // Υπάρχει μόνο μια άλλη δήλωση, επομένως δεν υπάρχουν σγουρές τιράντες ?>

Ακολουθεί ένα παράδειγμα στο οποίο η ρήτρα else παραλείπεται και η συνθήκη αποτελείται από δύο προϋποθέσεις:

6) echo "Οι συνθήκες είναι αληθείς"? //Ένα άλλο παράδειγμα: εάν ($num1 == 10 || $num2 >= 100) echo "Οι συνθήκες είναι αληθείς"; //Σε όλες τις περιπτώσεις οι συνθήκες είναι αληθείς ?>

Φωλιασμένο εάν συνθήκες

Όπως και στη γλώσσα C, η PHP επιτρέπει τη χρήση ένθετων συνθηκών:

//αν τα uslovie1 και uslovie2 είναι αληθή, τότε φτάνουμε εδώ) άλλο ( //αν το uslovie1 είναι αληθές και το uslovie2 είναι ψευδές, τότε φτάνουμε εδώ) άλλο ( //αν τα uslovie1 και uslovie2 είναι ψευδή, τότε φτάνουμε εδώ } ?>

Μπορείτε να γράψετε τόσα if nesting in εάν θέλετε, αλλά τέτοιες κατασκευές είναι πολύ περίπλοκες, επομένως θα είναι αρκετά δύσκολο να τις κατανοήσετε κατά την αποσφαλμάτωση ενός προγράμματος. Ακολουθεί ένα παράδειγμα με ένθετες προτάσεις if:

// το αποτέλεσμα αυτού του σεναρίου θα είναι ένα μήνυμα: // $flag1 είναι true και $flag2 είναι false ?>

Ένθετες συνθήκες χρησιμοποιώντας if...elseif...else

Η PHP έχει τη δυνατότητα να ενσωματώνει εντολές υπό όρους χρησιμοποιώντας το σχήμα: if...elseif...else . Αυτό είναι πολύ πιο βολικό από το να δημιουργήσετε αρχικά ένα σύνολο συνθηκών και στη συνέχεια να προσθέσετε ένα σύνολο άλλων σε αυτές. Η σύνταξη της κατασκευής if...elseif...else είναι η εξής:

Σε μια τέτοια κατασκευή, το else μπορεί να γραφτεί μόνο μία φορά, αλλά το elseif μπορεί να γραφτεί όσες φορές θέλετε. Θεωρείται επίσης ότι ο παραπάνω σχεδιασμός είναι κατώτερος του διακόπτη διακόπτη.

Χρησιμοποιώντας τον τελεστή endif

Σχεδόν κάθε μηχανή που δημιουργείται στην PHP χρησιμοποιεί τον τελεστή endif. Η κατασκευή αυτού του χειριστή φαίνεται παρακάτω:

... html ετικέτες και περιεχόμενο. ... ... html ετικέτες και περιεχόμενο. ...

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

Χρήση τελεστών υπό όρους (?)

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

Πρώτα έρχεται κάποια προϋπόθεση. Εάν είναι αληθές, τότε εκτελείται ο operator_1, διαφορετικά ο operator_2 εκτελείται. Νομίζω ότι η κατασκευή δεν είναι πολύ σαφής, γι' αυτό αξίζει να δώσουμε μερικά παραδείγματα PHP για διευκρίνιση. Για παράδειγμα, χρησιμοποιώντας έναν τελεστή υπό όρους, μπορείτε εύκολα να εφαρμόσετε το μέτρο ενός αριθμού:

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

12.09.2017

Οχι ακόμα


Γεια σε όλους!
Ας συνεχίσουμε να μαθαίνουμε τα βασικά της PHP από την αρχή!
Σε αυτό το μάθημα θα σας μιλήσω για υπό όρους δήλωση αν άλλο. Κυριολεκτικά μεταφράζεται, if σημαίνει «αν» και else σημαίνει «αλλιώς». Η ίδια η κατασκευή if else βοηθά στην επαλήθευση δεδομένων και στην εμφάνιση του αποτελέσματος (εμφάνιση μηνυμάτων, εκτέλεση κάποιας εντολής, ανακατεύθυνση του χρήστη σε μια μυστική σελίδα ή αφήστε τον στον πίνακα διαχείρισης). Για να μάθουμε πώς να γράφουμε σωστά τις συνθήκες και να κατανοούμε την κατασκευή if else, θα δώσω ένα πραγματικό παράδειγμα που μοιάζει πολύ με την κατασκευή if else.
Δίνεις στον εγκέφαλό σου μια εντολή: μόλις χτυπήσει το ξυπνητήρι (6:00), πρέπει να σηκωθώ, να πλύνω το πρόσωπό μου, να βουρτσίσω τα δόντια μου, να ντυθώ και να καλπώσω στη δουλειά. Αν το ξυπνητήρι δεν χτυπήσει στις 6:00, τότε μπορείτε να κοιμηθείτε, αφού δεν χρειάζεται να τρέχετε στη δουλειά.
Προσέξατε την κατασκευή if else; Η συνθήκη θα είναι η καθορισμένη ώρα αφύπνισης "6:00". Αν χτυπήσει το ξυπνητήρι, τότε σηκωθούμε και τρέχουμε στη δουλειά, αν δεν χτυπήσει (αλλιώς, εξακολουθούν να λένε ψέματα), τότε συνεχίζουμε να κοιμόμαστε.
Υπάρχουν πολλά τέτοια παραδείγματα ζωής, για παράδειγμα: αν βρέχει, τότε κάθομαι σπίτι, αν δεν βρέχει, παίρνω την μπάλα και πηγαίνω να παίξω ποδόσφαιρο.
Πώς μπορείς λοιπόν γράψτε την κατασκευή if else? Πολύ απλό.
Ας πάμε βήμα-βήμα και ας ξεκινήσουμε με μια απλή συνθήκη - τη δήλωση if.

Για καλύτερη κατανόηση, έχω απεικονίσει το διάγραμμα if construct ως εικόνα:

Τώρα ας προσπαθήσουμε να μετατρέψουμε το πραγματικό παράδειγμα που παρείχα παραπάνω σε κώδικα php.

Εάν αποθηκεύσετε ένα αρχείο php με αυτόν τον κώδικα και το ανοίξετε μέσω ενός τοπικού διακομιστή (δείτε), το αποτέλεσμα θα είναι:

⇒ Επεξήγηση κώδικα:
Στην συνθήκη, συνέκρινα τη μεταβλητή $weather με την τιμή "rain" (γραμμή #3). Στην ανθρώπινη γλώσσα, αυτός ο κώδικας μοιάζει με αυτό: εάν η μεταβλητή $weather είναι ίση με την τιμή "rain", τότε πρέπει να εκτυπώσετε το κείμενο " Κάθομαι στο σπίτι". Παρεμπιπτόντως, να σας υπενθυμίσω (αν ξεχάσατε) ότι το πρόσημο ίσου υποδεικνύεται με ένα διπλό πρόσημο ίσου, όπως αυτό (==). Εάν γράψετε άλλη τιμή στη μεταβλητή $weather (γραμμή Νο. 2) , για παράδειγμα, χιόνι, τότε το πρόγραμμα περιήγησης θα είναι κενή σελίδα επειδή δεν πληρούνται οι προϋποθέσεις.

→ ΚΩΔΙΚΟΣ ΠΡΟΤΥΠΟΥ "εάν ΚΑΤΑΣΚΕΥΗ":

→ Φύλλο εξαπάτησης:

Ισότητα: ==
Παράδειγμα: εάν ($a == $b)

Όχι ισότητα: !=
Παράδειγμα: αν ($a != $b)

Περισσότερα: >
Παράδειγμα: εάν ($a > $b)

Πιο λιγο:<
Παράδειγμα: εάν ($a< $b)

Μεγαλύτερο ή ίσο με: >=
Παράδειγμα: αν ($a >= $b)

Λιγότερο ή ίσο:<=
Παράδειγμα: εάν ($a<= $b)

Λογικό «και»: και
Παράδειγμα: αν ($a ==$b και $c !=$d)

Λογικό «ή»: ή , ||
Παράδειγμα: αν ($a ==$b || $c !=$d)

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

Τώρα ας μεταφράσουμε το διάγραμμα σε πραγματικό κώδικα:

Αποτέλεσμα:

Παίρνω την μπάλα και πάω να παίξω ποδόσφαιρο

⇒ Επεξήγηση κώδικα:
Στη συνθήκη, συνέκρινα τη μεταβλητή $weather με την τιμή "rain" (γραμμή No. 3), αλλά επειδή έκανα την τιμή "sun" στη μεταβλητή $weather (γραμμή No. 2), η συνθήκη δεν πληρούταν ( οι τιμές δεν είναι ίδιες), πράγμα που σημαίνει ότι το δεύτερο μέρος του κώδικα (άλλο) θα λειτουργήσει:

Αλλιώς ( ηχώ "παίρνω την μπάλα και πηγαίνω να παίξω ποδόσφαιρο" // αποτέλεσμα εάν η συνθήκη δεν είναι αληθής)

→ ΚΩΔΙΚΟΣ ΠΡΟΤΥΠΟΥ "if-else CONSTRUCTION":

Διπλή συνθήκη αν-άλλο

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

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

Ας αρχίσουμε.
Αρχικά, ας δημιουργήσουμε δύο μεταβλητές $logo και $password με τις αντίστοιχες τιμές:

Λάβετε υπόψη ότι στη συνθήκη διαχωρίσαμε δύο μεταβλητές με τον τελεστή "AND". Αυτό σημαίνει ότι δύο μεταβλητές πρέπει να είναι σωστές για να εκπληρωθεί η συνθήκη, αλλά επειδή ο κωδικός πρόσβασης στη συνθήκη μας δεν ταιριάζει (νεροχύτης Νο. 4), σημαίνει ότι η συνθήκη είναι λανθασμένη και θα δείτε αυτό το μήνυμα στην οθόνη:

Η σύνδεση ή ο κωδικός πρόσβασης είναι λανθασμένη

Εάν αλλάξετε την τιμή της μεταβλητής $password σε "123" (γραμμή αρ. 3), τότε οι προϋποθέσεις θα πληρούνται πλήρως (γραμμή αρ. 4):

Αποτέλεσμα:

καλώς ορίσατε στον πίνακα διαχείρισης

Ένθετα κατασκευάσματα if-else

Φωλιάζοντας- αυτό συμβαίνει όταν υπάρχει άλλη δομή μέσα στη δομή. Δεν το εξήγησες ξεκάθαρα; Δεν πειράζει, θα καταλάβετε τα πάντα με ένα παράδειγμα.

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

Ας αρχίσουμε:

Αρχικά, ας δημιουργήσουμε τρεις μεταβλητές, $logo , $password και $x με τις αντίστοιχες τιμές:

Τώρα ας δημιουργήσουμε μια διπλή συνθήκη για να ελέγξουμε τις μεταβλητές $logo και $password:

Τώρα κάτω από το σχόλιο " // θα υπάρξει μια άλλη συνθήκη με μια μυστική λέξη « (γραμμή Νο 7) γράψε ένα ακόμα αν-άλλο κατασκεύασμαμε την προϋπόθεση ελέγχου της μεταβλητής $x :

Επειδή η μυστική λέξη είναι λανθασμένη (γραμμή Νο. 8), θα εμφανιστεί το μήνυμα στην οθόνη:

η μυστική λέξη είναι λάθος

Εάν αντικαταστήσετε την τιμή του $x με το "BlogGOOD", τότε η μυστική λέξη θα είναι αληθής:

Δεδομένου ότι η σύνδεση και ο κωδικός πρόσβασης είναι σωστά και αυτό σημαίνει ότι πληρούνταν η προϋπόθεση, το πρώτο μέρος του κώδικα, όπου ήταν απαραίτητο να ελέγξετε τη μυστική λέξη, λειτούργησε. Εφόσον η μυστική λέξη είναι αληθής με την συνθήκη, τότε θα δείτε ένα μήνυμα στην οθόνη:

καλώς ορίσατε στον πίνακα διαχείρισης

→ ΚΩΔΙΚΟΣ ΠΡΟΤΥΠΟΥ "ΕΝΤΟΛΕΜΕΝΟ εάν-άλλο CONSTRUCT":

τελεστής υπό όρους elseif

κατασκεύασμα otherifείναι ένας συνδυασμός δομών if και else που θα βοηθήσουν στον έλεγχο πολλών συνθηκών στη σειρά.

Σύνταξη:

Λάβετε υπόψη ότι στις γραμμές No. 6 και No.

Επιτρέψτε μου να σας δείξω τον κώδικα εργασίας με μια επιλογή εγχειριδίων προγραμματισμού.

Αποτέλεσμα:

Παραγγείλατε ένα σεμινάριο PHP

Η μέθοδος elseif μπορεί επίσης να γραφτεί ως ένθετο αν αλλιώς κατασκεύασμα:

Το αποτέλεσμα είναι το ίδιο, αλλά είναι πιο εύκολο να μπερδευτείς (μπερδεύτηκα δύο φορές στον δικό μου κώδικα).

Προσθήκη στο μάθημα (δεν χρειάζεται να γνωρίζουμε ακόμη):

Υπάρχουν πολλές ακόμη επιλογές για να γράψετε το if else ( εναλλακτική σύνταξη).
Θα ετοιμάσω ένα ολόκληρο μάθημα για την εναλλακτική σύνταξη, όπου θα εξηγήσω και θα δείξω τα πάντα. Τώρα ρίξτε μια ματιά.
Κωδικός Νο. 1:

Η μεταβλητή "$a" περιέχει την τιμή 15

Εργασία για το σπίτι:
Δοκιμάστε αντί για ισότητα (== ) στη συνθήκη, βάλτε ανισότητα (!= ) ή δοκιμάστε με πρόσημα μεγαλύτερα από μικρότερα:

και επίσης αντικαταστήστε τον τελεστή "AND" με "OR".

Αυτό ήταν, ανυπομονώ να σας δω στα επόμενα μαθήματα! Εγγραφείτε στις ενημερώσεις ιστολογίου!

Προηγούμενη ανάρτηση
Επόμενη καταχώρηση



Μερίδιο