L'un des aspects clés du travail avec les nombres en Ruby est la distinction entre les entiers (les nombres sans chiffre après le séparateur décimal) et les nombres décimaux (les nombres avec zéro ou plusieurs chiffres après le séparateur décimal).
Ils sont implémentés au moyen des classes Integer et Float.
a = 1
b = 1.0
a.class
#=> Integer
b.class
#=> Float
+, -, *, /).
Les nombres peuvent être comparés à l'aide des opérateurs de comparaison standard.Integer donnent toujours une instance de Integer.Float donnent d'autres instances de Float.Integer et des instances de Float donnent des instances de Float.Float et Integer possèdent des méthodes qui convertissent les valeurs de l'une à l'autre.
Les nombres de type Integer sont précis à l'unité près, tandis que la précision d'un Float est fractionnaire par rapport à un nombre entier.
Cela signifie que convertir un Float en Integer peut entraîner une perte de précision.4.9.to_i
#=> 4
5.to_f
#=> 5.0
7 - 3.0
#=> 4.0
2 == 4
#=> false
1.0 == 1
#=> true
Une instruction if permet d'exécuter du code de façon conditionnelle :
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
Parfois, on veut exécuter une instruction (ou plusieurs) si une condition n'est pas vraie. Pour ce genre de situation, Ruby propose le mot-clé unless :
x = 4
unless x == 5
# Execute logic if x does not equal 5
else
# Execute logic if x == 5
end
Si tu veux exécuter du code différent selon la valeur d'une variable, l'instruction case de Ruby peut t'être utile :
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
Un même problème peut parfois se résoudre avec différents types d'instructions conditionnelles, et l'une d'elles peut être mieux adaptée au problème que les autres. Quand tu utilises l'une de ces trois instructions conditionnelles, il est bon de prendre un moment pour envisager aussi les deux autres.