[英]Problem with my program with ruby, i don't understand
puts "Quel âge tu as ?"
print ">"
age = gets.chomp.to_i
i = 0
while age > 0
puts "Il y a " + age.to_s + " ans" + " tu avais : " + i.to_s + " ans"
age -= 1
i += 1
break if age = i
puts "Il y a " + age.to_s + " ans" + " tu avais la moitié de ton âge !"
age = i
end
我在 Ruby On Rails 上的程序有問題。 我提前為我的英語道歉。
我通過做一個練習來訓練這門語言,讓你輸入你的年齡,看看你在特定年份的年齡。
但例如。 當我們達到一半年齡時,例如 20 歲,我想展示(法語)
“十年前,你只有一半的年齡!”
我想感謝“break if”,但這只會產生一行代碼。 我希望你已經理解,否則不要猶豫,要求澄清。
先感謝您。
break
不一定必須是單行,在滿足條件后您可以自行break
,而且您的代碼中存在問題,您正在與=
而不是==
進行比較
if (condition == true)
break
end
你的代碼可能看起來像
puts "Quel âge tu as ?"
print ">"
age = gets.chomp.to_i
i = 0
while age > 0
puts "Il y a " + age.to_s + " ans tu avais : " + i.to_s + " ans"
age -= 1
i += 1
if age == i
puts "Il y a " + age.to_s + " ans tu avais la moitié de ton âge !"
break
end
end
注意:我還要指出您的代碼不會顯示"Ten years ago, you were half your age!"
如果輸入的年齡是奇數
一個break
語句會停止你的 while 循環。 您可能需要一個if
表達式:
while age > 0
if age == i
puts "Il y a #{age} ans tu avais la moitié de ton âge !"
else
puts "Il y a #{age} ans tu avais : #{i} ans"
end
age -= 1
i += 1
end
您可以使用downto
和with_index
擺脫手動遞增/遞減:
age.downto(1).with_index do |a, i|
if a == i
puts "Il y a #{a} ans tu avais la moitié de ton âge !"
else
puts "Il y a #{a} ans tu avais : #{i} ans"
end
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.