Structures de controle

if ... else ... end

if heure == 7
  puts "Je me reveille"
elsif (heure >= 12 && heure <= 14) || (heure >= 19 && heure <= 21)
  puts "Je mange"
elsif heure >= 1 && heure < 7
  puts "Je dors"
else
  puts "Je travaille"
end

case ... end

puts "Merci de saisir un nombre : "
chiffre = gets.chomp.to_i
case chiffre
  when 0..9
      puts "Vous aimez les tout petits chiffres."
  when 42
      puts "Vous être un as !"
  else
      puts "Vous auriez mieux pu choisir... ;)"
end

unless ... end

j = rand(10)
unless (j <= 5)
  puts "j vaut plus de 5"
end

while ... end

puts "Je vais compter de 1 a 10"
i = 0
while (i < 10)
  i += 1
  puts i
end

until ... end

puts "Je vais compter de 1 a 10"
i = 0
until (i >= 10)
  puts i
  i += 1
end

for ... end

puts "compte de 1 a 10"
for elt1 in (1..10)
  puts elt1
end
tableau = [1, 2, 3, 4]
for elt2 in tableau
  puts elt2 + 1
end

each { ... } et autres itérateurs

Les possibles de coder les 2 exemples si dessus comme suit:

puts "compte de 1 a 10"
(1..10).each { |elt1|
  puts elt1
}
tableau = [1, 2, 3, 4]
tableau.each { |elt2|
  puts elt2 + 1
}
tableau = [1, 2, 3, 4]
tableau.each do |elt2|
  puts elt2 + 1
end

Parser un à un les caractères d'une chaine:

ma_chaine = "ayu"
ma_chaine.each_byte { |carac|
  ascii_sup = carac+1
  puts ascii_sup.chr
}

Parser une à une les lignes d'une chaine:

ma_chaine = "toto\ntiti\ntata"
i = 1
ma_chaine.each_line { |ligne|
  puts "#{i} : #{ligne}"
  i += 1
}

Moyen de repeter une operation X fois:

2000.times do
  puts "Moi, j'adore K2000 !" # © Les Nuls
end

Sortie de boucle:

  • return: sort complètement de la boucle et de la méthode qui contient la boucle.
  • break: sort de la boucle, et continue le code juste après.
  • next: passe directement à la prochaine itération de la boucle
  • redo: re-passe l'itération courante de la boucle

results matching ""

    No results matching ""