Διαδρομές
/
Ruby
Ruby
/
Ύλη
/
Συνθήκες
Συ

Συνθήκες σε Ruby

22 ασκήσεις

Σχετικά με την έννοια Συνθήκες

Η Ruby έχει αυτό που ονομάζουμε εκφράσεις ελέγχου ροής. Χρησιμοποιούνται για να ελέγχουν τον τρόπο με τον οποίο θα εκτελεστεί το πρόγραμμα και δέχονται μια τιμή truthy ή falsey. Υπάρχουν τελεστές που μπορούν να χρησιμοποιηθούν για να δημιουργήσουν truthy ή falsey τιμές, και είναι γνωστοί ως τελεστές σύγκρισης.

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

Αυτές οι δύο είναι: η if και η unless.

Τελεστές σύγκρισης

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

Μέθοδος Περιγραφή Παράδειγμα
< μικρότερο από 4 < 5
<= μικρότερο ή ίσο 4 <= 4
> μεγαλύτερο από 3 > 1
>= μεγαλύτερο ή ίσο 2 >= 2

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

Μέθοδος Περιγραφή Παράδειγμα
== ίσο 4 == 4
!= άνισο 5 != 4

Συνδυασμένος τελεστής σύγκρισης

Ο συνδυασμένος τελεστής σύγκρισης (μερικές φορές ονομάζεται τελεστής διαστημόπλοιο) είναι ένας ειδικός τελεστής σύγκρισης. Είναι ειδικός με την έννοια ότι δεν επιστρέφει μια τιμή truthy ή falsey, αλλά έναν αριθμό. Γράφεται ως <=> και χρησιμοποιείται για να συγκρίνει 2 τιμές. Επιστρέφει 1 αν η αριστερή τιμή είναι μεγαλύτερη από τη δεξιά, -1 αν η αριστερή τιμή είναι μικρότερη από τη δεξιά, και 0 αν οι τιμές είναι ίσες.

1 <=> 2 # => -1
2 <=> 2 # => 0
3 <=> 2 # => 1

Η εντολή if

Η εντολή if χρησιμοποιείται για να ελέγξει αν μια δεδομένη συνθήκη είναι "truthy" ή "falsey". Αν η συνθήκη είναι truthy, τότε ο κώδικας μέσα στην εντολή if θα εκτελεστεί. Μια εντολή if τελειώνει με τη λέξη-κλειδί end.

value = 1
if value == 1
  "1 is equal to 1"
end
# => "1 is equal to 1"

if value > 2
  "1 is greater than 2"
end
# => nil

Η εντολή unless

Η εντολή unless λειτουργεί πολύ παρόμοια με την εντολή if, αλλά εκτελεί τον κώδικα μέσα στην εντολή unless αν η συνθήκη είναι falsey.

value = 1
unless value == 1
  "1 is not equal to 1"
end
# => nil

unless value > 2
  "1 is not greater than 2"
end
# => "1 is not greater than 2"

Η εντολή else

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

value = 1
if value == 1
  "1 is equal to 1"
else
  "1 is not equal to 1"
end
# => "1 is equal to 1"

if value > 2
  "1 is greater than 2"
else
  "1 is not greater than 2"
end
# => "1 is not greater than 2"

Οι "αλυσιδωτές" εντολές if

Η εντολή elsif μπορεί να χρησιμοποιηθεί σε συνδυασμό με την εντολή if. Η εντολή elsif θα εκτελεστεί αν ο κλάδος if δεν εκτελεστεί και η συνθήκη της εντολής elsif είναι truthy. Οι εντολές elsif μπορούν να αλυσιδωθούν μεταξύ τους και η πρώτη συνθήκη που είναι truthy θα εκτελεστεί. Μπορεί επίσης να υπάρχει μια εντολή else στο τέλος της εντολής if, η οποία θα εκτελεστεί αν καμία από τις προηγούμενες εντολές δεν ήταν αληθής.

value = 1
if value == 0
  "1 is equal to 0"
elsif value > 2
  "1 is greater than 2"
else
  "1 is not equal to 0 and 1 is not greater than 2"
end
# => "1 is not equal to 0 and 1 is not greater than 2"

Τα if και unless ως επίθημα

Οι εντολές if και unless μπορούν επίσης να χρησιμοποιηθούν ως [επίθημα][if-as-suffix]. Αυτό είναι χρήσιμο όταν θέλεις να εκτελέσεις μία μόνο γραμμή κώδικα αν μια συνθήκη είναι αληθής. Γίνεται βάζοντας την εντολή if ή unless μετά τον κώδικα που θέλεις να εκτελεστεί.

value = 1
"1 is equal to 1" if value == 1
# => 1 is equal to 1

"1 is not equal to 1" unless value == 1
# => nil
Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα

Μάθε την έννοια Συνθήκες

Η εξάσκηση είναι κλειδωμένη

Ξεκλείδωσε 10 ακόμη ασκήσεις για να εξασκηθείς στην έννοια Συνθήκες