Ein wichtiger Aspekt bei der Arbeit mit Zahlen in Ruby ist der Unterschied zwischen Ganzzahlen (Zahlen ohne Ziffern nach dem Dezimaltrennzeichen) und Gleitkommazahlen (Zahlen mit null oder mehr Ziffern nach dem Dezimaltrennzeichen).
Sie sind über die Klassen Integer und Float implementiert.
a = 1
b = 1.0
a.class
#=> Integer
b.class
#=> Float
+, -, *, /).
Zahlen lassen sich mit den standardmäßigen Vergleichsoperatoren vergleichen.Integer-Instanzen ergeben immer eine Integer-Instanz.Float-Instanzen ergeben wieder Float-Instanzen.Integer- und Float-Instanzen ergeben Float-Instanzen.Float und Integer haben Methoden, mit denen du Werte von einem Typ in den anderen umwandeln kannst.
Integer-Zahlen sind genau bis auf eine ganze Einheit, während Float eine Genauigkeit hat, die auch Bruchteile einer ganzen Zahl umfasst.
Das bedeutet, dass beim Umwandeln einer Gleitkommazahl in eine Ganzzahl Genauigkeit verloren gehen kann.4.9.to_i
#=> 4
5.to_f
#=> 5.0
7 - 3.0
#=> 4.0
2 == 4
#=> false
1.0 == 1
#=> true
Mit einer if-Anweisung kannst du Code bedingt ausführen:
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
Manchmal möchtest du eine Anweisung (oder mehrere Anweisungen) ausführen, wenn eine Bedingung nicht wahr ist. Für solche Fälle bietet Ruby das Schlüsselwort unless:
x = 4
unless x == 5
# Execute logic if x does not equal 5
else
# Execute logic if x == 5
end
Wenn du abhängig vom Wert einer Variablen unterschiedlichen Code ausführen möchtest, kann Rubys case-Anweisung nützlich sein:
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
Dasselbe Problem lässt sich manchmal mit verschiedenen Arten von bedingten Anweisungen lösen, und oft passt die eine besser zum Problem als die andere. Wenn du eine der drei bedingten Anweisungen verwendest, ist es eine gute Idee, kurz innezuhalten und auch die beiden anderen Optionen in Betracht zu ziehen.