Ruby 这里的新员工总数和其他fizzbuzz问题
我试图写一个循环的fizzbuzz代码,以用户输入的数字结尾。到目前为止,代码仍然有效,但它会循环用户输入的次数,而不是以用户输入的限制结束。例如,如果我输入25,它将循环25次,而不是在25结束。如何设置参数/范围 这是我的密码:Ruby 这里的新员工总数和其他fizzbuzz问题,ruby,fizzbuzz,Ruby,Fizzbuzz,我试图写一个循环的fizzbuzz代码,以用户输入的数字结尾。到目前为止,代码仍然有效,但它会循环用户输入的次数,而不是以用户输入的限制结束。例如,如果我输入25,它将循环25次,而不是在25结束。如何设置参数/范围 这是我的密码: puts("Please select a number that is at least 25. This is the limit for the fizzbuzz game.") user_input = gets().chomp().to_i if u
puts("Please select a number that is at least 25. This is the limit for the fizzbuzz game.")
user_input = gets().chomp().to_i
if
user_input < 25
puts("Please select a larger number.")
else
user_input >= 25
user_input = user_input
counter = 1
while counter < user_input
puts(counter)
counter = counter + 1
(1..user_input).step do |i|
if i % 3 == 0 && i % 5 == 0
puts("fizzbuzz")
elsif i % 3 == 0
puts("fizz")
elsif i % 5 == 0
puts("buzz")
else
puts(i)
end
end
end
end
put(“请选择一个至少为25的数字。这是fizzbuzz游戏的限制。”)
用户\u input=gets().chomp().to\u i
如果
用户输入<25
puts(“请选择一个较大的数字”)
其他的
用户输入>=25
用户输入=用户输入
计数器=1
而计数器<用户输入
放置(计数器)
计数器=计数器+1
(1.用户输入)。步骤do | i|
如果i%3==0&&i%5==0
puts(“嘶嘶声”)
如果i%3==0
puts(“嘶嘶声”)
如果i%5==0
出售(“嗡嗡声”)
其他的
第(i)项
结束
结束
结束
结束
- 当您不向方法发送参数时,写入
是可选的,通常不鼓励这样做()
- 您不应该使用
,else user\u input>=25
就足够了else
是完全无用的行user\u input=user\u input
虽然rubist的编码方式不是使用计数器循环,但更喜欢迭代器。此外,您根本不应该在这里使用
put'请选择一个至少为25的数字。这是fizzbuzz游戏的极限
用户输入=gets.chomp.to\u i
如果用户输入<25
放置“请选择一个较大的数字。”
其他的
1.最多(用户输入)do | i|
如果i%3==0&&i%5==0
放上“嘶嘶声”
如果i%3==0
放“嘶嘶”
如果i%5==0
“嗡嗡声”
其他的
把我
结束
结束
结束
或者,您可以使用case when
代替多个elsif
语句:
puts 'Please select a number that is at least 25. This is the limit for the fizzbuzz game.'
user_input = gets.chomp.to_i
if user_input < 25
puts 'Please select a larger number.'
else
1.upto(user_input) do |i|
case
when [3, 5].all? { |n| i % n == 0 }; puts 'fizzbuzz'
when i % 3 == 0; puts 'fizz'
when i % 5 == 0; puts 'buzz'
else; puts i
end
end
end
put'请选择一个至少为25的数字。这是fizzbuzz游戏的极限
用户输入=gets.chomp.to\u i
如果用户输入<25
放置“请选择一个较大的数字。”
其他的
1.最多(用户输入)do | i|
案例
什么时候[3,5]。全部?{| n | i%n==0};放上“嘶嘶声”
当i%3==0时;放“嘶嘶”
当i%5==0时;“嗡嗡声”
其他的把我
结束
结束
结束
您使用的是两个循环,而您只需要一个循环。移除步骤
循环,并将对i
的所有引用替换为计数器
。这将使您离解决方案更近一步。(检查你的=25
是两倍无用的,因为它没有被任何东西使用,而且因为即使你写的是elsif
而不是else
,在计算时它也总是正确的。)或者(更好的是),用一个范围做所有事情,去掉while
。我不喜欢while语句,我会使用1.upto(用户输入)并在其中执行一个案例