A Rubyban a számokkal végzett munka egyik kulcsfontosságú szempontja az egész számok (amelyekben a tizedesjel után nincs számjegy) és a lebegőpontos számok (amelyekben a tizedesjel után nulla vagy több számjegy áll) megkülönböztetése.
Ezeket az Integer és a Float osztály valósítja meg.
a = 1
b = 1.0
a.class
#=> Integer
b.class
#=> Float
+, -, *, /) segítségével történnek.
A számok a szokásos összehasonlító operátorokkal hasonlíthatók össze.Integer példányai közötti alapvető aritmetikai műveletek eredménye mindig Integer példány lesz.Float példányai közötti alapvető aritmetikai műveletek eredménye szintén Float példány lesz.Integer és a Float példányai közötti alapvető aritmetikai műveletek eredménye Float példány lesz.Float és az Integer osztálynak vannak olyan metódusai, amelyekkel egyik típusból a másikba konvertálhatók az értékek.
Az Integer típusú számok egész egységig pontosak, a Float pontossága pedig egy egész számhoz képest tört értékű.
Ez azt jelenti, hogy egy lebegőpontos szám egésszé konvertálása pontosságvesztéssel járhat.4.9.to_i
#=> 4
5.to_f
#=> 5.0
7 - 3.0
#=> 4.0
2 == 4
#=> false
1.0 == 1
#=> true
Az if elágazás segítségével feltételesen futtathatsz kódot:
x = 5
if x == 5
# Execute logic if x equals 5
elsif x > 7
# Execute logic if x greater than 7
else
# Execute logic in all other cases
end
Néha akkor is végre szeretnél hajtani egy utasítást (vagy több utasítást), ha egy feltétel nem igaz. Az ilyen helyzetekre a Ruby az unless kulcsszót kínálja:
x = 4
unless x == 5
# Execute logic if x does not equal 5
else
# Execute logic if x == 5
end
Ha egy változó értékétől függően szeretnél más-más kódot futtatni, hasznos lehet a Ruby case utasítása:
y = 5
case y
when 3
# Execute logic if y equals 3
when 5
# Execute logic if y equals 5
else
# Execute logic in all other cases
end
Ugyanaz a probléma néha többféle elágazással is megoldható, és előfordulhat, hogy az egyik jobban illik a problémához, mint a másik. Érdemes egy pillanatra megállni, és a három elágazás bármelyikének használatakor a másik kettőt is számításba venni.