Ένας οδηγός αρχαρίων για τη σύγκριση των τιμών στην Perl

Perl οι χειριστές σύγκρισης μπορεί μερικές φορές να προκαλέσουν σύγχυση στους νέους προγραμματιστές της Perl. Η σύγχυση οφείλεται στο γεγονός ότι η Perl έχει στην πραγματικότητα δύο σειρές συγκριτικών φορέων - μία για σύγκριση αριθμητικές τιμές και μία για σύγκριση των συμβολοσειρών Αμερικανικού Τυποποιημένου Κώδικα για την Ανταλλαγή Πληροφοριών (ASCII).

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

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

Ίση, Μη Ίση

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

instagram viewer

Για τη δοκιμή της ισότητας των δύο αριθμητικός τιμές, χρησιμοποιούμε τον χειριστή σύγκρισης ==. Για τη δοκιμή της ισότητας των δύο σειρά τιμές, χρησιμοποιούμε τον χειριστή σύγκρισης eq (Ισος).

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

αν (5 == 5) {print "== για αριθμητικές τιμές \ n"; }
αν ('moe' eq 'moe') {print "eq (EQual) για τιμές string \ n"; } 

Η δοκιμή για το αντίθετο, όχι ίσο, είναι πολύ παρόμοια. Θυμηθείτε ότι αυτή η δοκιμασία θα επιστρέψει αληθής εάν οι τιμές είναι δοκιμασμένες δεν ίσες μεταξύ τους. Για να δείτε αν δύο αριθμητικός οι τιμές είναι δεν ίσες μεταξύ τους, χρησιμοποιούμε τον χειριστή σύγκρισης !=. Για να δείτε αν δύο σειρά οι τιμές είναι δεν ίσες μεταξύ τους, χρησιμοποιούμε τον χειριστή σύγκρισης ne (Δεν είναι ισοδύναμο).

αν (5! = 6) {print "! = για αριθμητικές τιμές \ n"; }
εάν ('moe' ne 'curly') {print "ne (Not Equal) για τιμές string \ n"; } 

Μεγαλύτερη απ 'ότι, μεγαλύτερη από ή ίση με

Τώρα ας δούμε το μεγαλύτερος από χειριστές σύγκρισης. Χρησιμοποιώντας αυτόν τον πρώτο χειριστή, μπορείτε να ελέγξετε αν μια τιμή είναι μεγαλύτερη από μια άλλη τιμή. Για να δείτε αν δύο αριθμητικός οι τιμές είναι μεγαλύτερες από κάθε άλλη, χρησιμοποιούμε τον χειριστή σύγκρισης >. Για να δείτε αν δύο σειρά οι τιμές είναι μεγαλύτερες από κάθε άλλη, χρησιμοποιούμε τον χειριστή σύγκρισης gt; (Μεγαλύτερος από).

αν (5> 4) {print "> για αριθμητικές τιμές \ n"; }
αν ('B' gt 'A') {print "gt (Μεγαλύτερη από) για τις τιμές των συμβολοσειρών \ n"; } 

Μπορείτε επίσης να δοκιμάσετε για μεγαλύτερο ή ίσο με, η οποία μοιάζει πολύ παρόμοια. Λάβετε υπόψη ότι αυτή η δοκιμασία θα επιστρέψει αληθής αν οι δοκιμασμένες τιμές είναι ίσες μεταξύ τους ή αν η τιμή στα αριστερά είναι μεγαλύτερη από την τιμή στα δεξιά.

Για να δείτε αν δύο αριθμητικός οι τιμές είναι μεγαλύτερες ή ίσες μεταξύ τους, χρησιμοποιούμε τον χειριστή σύγκρισης >=. Για να δείτε αν δύο σειρά οι τιμές είναι μεγαλύτερες ή ίσες μεταξύ τους, χρησιμοποιούμε τον χειριστή σύγκρισης ge (Μεγαλύτερη από ισοδύναμη).

αν (5> = 5) {print "> = για αριθμητικές τιμές \ n"; }
αν ('B' ge 'A') {print "ge (μεγαλύτερο από ισότιμο) για τις τιμές των συμβολοσειρών \ n"; } 

Λιγότερο από, λιγότερο από ή ίσο με

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

Ας δούμε το λιγότερο από χειριστές σύγκρισης. Χρησιμοποιώντας αυτόν τον πρώτο χειριστή, μπορείτε να ελέγξετε αν υπάρχει μία τιμή λιγότερο από μια άλλη αξία. Για να δείτε αν δύο αριθμητικός οι τιμές είναι λιγότερο από το ένα το άλλο, χρησιμοποιούμε τον χειριστή σύγκρισης <. Για να δείτε αν δύο σειρά οι τιμές είναι λιγότερο από το ένα το άλλο, χρησιμοποιούμε τον χειριστή σύγκρισης lt (Λιγότερο από).

αν (4 <5) {print "
αν ('A' lt 'B') {print "lt (Λιγότερο από) για τις τιμές των συμβολοσειρών \ n"; } 

Μπορείτε επίσης να δοκιμάσετε, μικρότερη ή ίση με, η οποία μοιάζει πολύ παρόμοια. Θυμηθείτε ότι αυτή η δοκιμασία θα επιστρέψει αληθής εάν οι τιμές που έχουν δοκιμαστεί είναι ίσες μεταξύ τους ή εάν η τιμή στα αριστερά είναι μικρότερη από την τιμή στα δεξιά. Για να δείτε αν δύο αριθμητικός οι τιμές είναι μικρότερη ή ίση με το ένα το άλλο, χρησιμοποιούμε τον χειριστή σύγκρισης <=. Για να δείτε αν δύο σειρά οι τιμές είναι μικρότερη ή ίση με το ένα το άλλο, χρησιμοποιούμε τον χειριστή σύγκρισης le (Λιγότερο από Ίσο).

 αν (5 <= 5) {print "<= για αριθμητικές τιμές \ n"; }
αν ('A' le 'B') {print "le (Less-than Equal-to) για τις τιμές των συμβολοσειρών \ n"; } 

Περισσότερες πληροφορίες σχετικά με τους χειριστές σύγκρισης

Όταν μιλάμε για τιμές ίσου μεταξύ τους, αναφερόμαστε στις τιμές τους ASCII. Έτσι, τα κεφαλαία γράμματα είναι τεχνικά λιγότερα από τα πεζά γράμματα και όσο υψηλότερο είναι το γράμμα στο αλφάβητο, τόσο μεγαλύτερη είναι η τιμή ASCII.

Βεβαιωθείτε ότι ελέγχετε τις τιμές ASCII αν προσπαθείτε να κάνετε λογικές αποφάσεις βάσει συμβολοσειρών.