我试图使用设置为布尔值true
的变量来创建循环。我期望如果用户输入false
时该值将更改为"exit"
,并且由于while
语句"isTrue == true"
不再是{{1} }。
true
但是它似乎没有用,只是不断循环。为什么我的代码无法正常工作?
答案 0 :(得分:2)
使用gets.chomp
而不是gets
删除尾部“ \ n”,它将起作用。因此,您将不会处理来自gets
的“退出\ n”
答案 1 :(得分:0)
[1] pry(main)> input = gets
exit
=> "exit\n"
[2] pry(main)>
这是因为gets
输入中将包含\n
。您需要处理它。
赞:
[2] pry(main)> input.chomp
=> "exit"
通常ppl这样写:
[3] pry(main)> input = gets.chomp
exit
=> "exit"
答案 2 :(得分:0)
rstrip
在这种情况下会为您提供帮助。
由于您按了返回按钮,因此您输入的内容实际上并不完全是“退出”。
以下代码将起作用。
isTrue = true
while isTrue == true do
input = gets
if input.rstrip == "exit" then # exitと入力されたら
isTrue = false # プログラムを終了
else
puts "LOOPING..."
end
end
puts "ENDING NOW"
答案 3 :(得分:0)
您的程序可以变得更紧凑:
while gets.chomp != 'exit' do
puts 'LOOPING...'
end
puts 'ENDING NOW'
该程序的版本与您的程序完全相同,但是更小,更快。
祝您在Ruby学习中好运!