ruby 我的程序有问题,我不明白
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 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
statement stops your while loop. You probably want an if
expression:
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
and 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
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 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
statement stops your while loop. You probably want an if
expression:
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
and 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