簡體   English   中英

我的 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 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

您可以使用downtowith_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM