Η Ruby προσφέρει standard control-flow (if, , ) αλλά με distinctive, expressive χαρακτηριστικά: (), , το powerful , και μια προτίμηση για αντί παραδοσιακών loops. Η ροή ελέγχου στη Ruby διαβάζεται φυσικά.
casewhiledo_x if conditionunlesscase/whenif age >= 18
puts "adult"
elsif age >= 13
puts "teen"
else
puts "child"
end
# MODIFIER form — condition at the END (reads like English, idiomatic for short cases)
puts "adult" if age >= 18
puts "minor" unless age >= 18 # `unless` = if not (more readable than `if !`)
# everything is an expression — if returns a value
grade = if score >= 90 then "A" else "B" end
Ha Ruby's modifier form (puts "x" if condition) θέτει την συνθήκη στο τέλος για concise, readable one-liners. unless (= "if not") διαβάζεται πιο φυσικά από την άρνηση. Και το if είναι ένα expression που επιστρέφει μια τιμή.
case status
when :active then "running"
when :stopped, :paused then "halted" # multiple values
when 1..10 then "small number" # ranges
when String then "it's a string" # types (uses ===)
else "unknown"
end
# case can also do structural pattern matching (Ruby 3)
case data
in { name: String => name, age: Integer } # pattern matching with destructuring
puts name
end
To Ruby's case/when είναι powerful — ταιριάζει values, ranges, types, και (στη Ruby 3) structural patterns, χρησιμοποιώντας το === κάτω από την επιφάνεια. Πολύ πιο flexible από ένα basic switch.
while count < 10 do count += 1 end
until done do ... end # until = while not
# ✅ but Ruby PREFERS iteration with blocks over explicit loops:
5.times { |i| puts i } # instead of a for loop
[1, 2, 3].each { |n| puts n } # iterate a collection
(1..10).each { |n| ... } # iterate a range
1.upto(5) { |i| ... }
Η Ruby έχει while/until, αλλά το idiomatic Ruby προτιμά την iteration με blocks (each, times, map) αντί explicit loops — πιο expressive και Ruby-like.
Η κατανόηση της ροής ελέγχου της Ruby είναι θεμελιώδης καθημερινή γνώση, και αρκετά distinctive χαρακτηριστικά αντικατοπτρίζουν τη φιλοσοφία της Ruby για expressive, readable κώδικα.
Το modifier form (do_x if condition) και το unless (= "if not") σας επιτρέπουν να γράψετε concise, English-like conditionals που είναι idiomatic Ruby και εμφανίζονται συνεχώς.
Το γεγονός ότι το if είναι ένα expression (που επιστρέφει μια τιμή) καθιστά δυνατές τις elegant assignments.
To Ruby's case/when είναι αξιόσημα powerful — ταιριάζει values, ranges, types, και (στη Ruby 3) structural patterns μέσω === — κάνοντάς το πολύ πιο flexible από ένα basic switch και χρήσιμο για clean multi-way branching.
Κρίσιμα, το idiomatic Ruby προτιμά την iteration με blocks (each, times, map, upto) αντί παραδοσιακών for/while loops — αυτό είναι ένα σχεδιαστικό κομμάτι που ορίζει την Ruby: οι developers της Ruby επαναλαμβάνουν συλλογές και ranges με block-based μεθόδους αντί explicit loops, το οποίο είναι πιο expressive και Ruby-like.
Η κατανόηση αυτών των δομών και idioms — το modifier form και το unless για readable conditionals, το powerful case/when, και ιδιαίτερα η προτίμηση για block-based iteration αντί explicit loops — είναι σημαντική για να γράφετε και να διαβάζετε idiomatic Ruby.
Επειδή η ροή ελέγχου εμφανίζεται σε κάθε πρόγραμμα, και επειδή οι expressive forms της Ruby (modifiers, unless, powerful case, block iteration) ενσωματώνουν τη φιλοσοφία της για readability-focused, η κατάκτηση τους είναι απαραίτητη, θεμελιώδης γνώση για τη γραφή natural, idiomatic Ruby αντί για μετάφραση loop-heavy patterns από άλλες γλώσσες.