Ruby joffri control-flow standard (if, , ) iżda b'karatteristiċi distintivi u espressivi: (), , il- qawwi, u preferenza għall- fuq loops tradizzjonali. Il-control flow f'Ruby jinqara b'mod naturali.
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
Il-modifier form ta' Ruby (puts "x" if condition) tpoġġi l-condition fl-aħħar għal one-liners konċiżi u leggibili. unless (= "jekk le") tinqara aktar naturalment minn negazzjoni. U if huwa expression li jirritorna valur.
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
Il-case/when ta' Ruby hija qawwija — taqbel valuri, ranges, tipi, u (f'Ruby 3) patterns strutturali, billi tuża === taħt il-wiċċ. Ħafna aktar flessibli minn switch bażiku.
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 għandha while/until, iżda Ruby idiomatic tippreferi iterazzjoni b'blocks (each, times, map) fuq loops esplċiti — aktar espressiva u Ruby-like.
L-għarfien tal-control flow ta' Ruby huwa għarfien fundamentali ta' kuljum, u ħafna karatteristiċi distintivi jirriflettu l-filosofija espressiva u leggibili ta' Ruby.
Il-modifier form (do_x if condition) u unless (= "jekk le") jippermettuk tikteb condizjonali konċiżi u simili għal-Ingliż li huma idiomatic Ruby u jidhru kostantement.
Il-fatt li if huwa expression (li jirritorna valur) jippermetti assignments eleganti.
Il-case/when ta' Ruby hija notevolment qawwija — taqbel valuri, ranges, tipi, u (f'Ruby 3) patterns strutturali permezz ta' === — u jagħmilha ħafna aktar flessibli minn switch bażiku u utli għal branching multi-way naddaf.
Krucjalment, Ruby idiomatic tippreferi iterazzjoni b'blocks (each, times, map, upto) fuq loops tradizzjonali for/while — dan huwa punt stilistiku definenti: iż-żviluppaturi ta' Ruby jiterraw kollezioni u ranges b'metodi bbażati fuq blocks minflok loops esplċiti, li huwa aktar espressiv u Ruby-like.
L-għarfien ta' dawn il-konstrutti u l-idioms — il-modifier form u unless għal condizjonali leggibili, il-case/when qawwija, u speċjalment il-preferenza għall-iterazzjoni bbażata fuq blocks fuq loops esplċiti — huwa importanti għat-tiktib u l-qari ta' Ruby idiomatic.
Billi l-control flow jidhru fi kull programm, u billi l-forom espressivi ta' Ruby (modifiers, unless, case qawwi, block iteration) jinkorporaw il-filosofija tiegħu ffukata fuq il-leggibilità, il-qgħud tal-fonda tiegħu huwa għarfien essenzjali u fundamentali għat-tiktib ta' Ruby naturali u idiomatic minflok traduzzjoni ta' patterns ċatti ta' loops minn lingwi oħra.