Ruby语句中的`and`s的数量有限制吗?
下面的代码可以按照我的要求工作,每次按l键都可以打开或关闭灯。然而,当我尝试添加其他我想通过切换完成的事情时,我不能Ruby语句中的`and`s的数量有限制吗?,ruby,Ruby,下面的代码可以按照我的要求工作,每次按l键都可以打开或关闭灯。然而,当我尝试添加其他我想通过切换完成的事情时,我不能 look = 0 lighton = 0 while look < 10 system 'stty cbreak' q = $stdin.sysread 1 case q ### #{q} when "l" then if lighton==1 then lighton=0 and puts "ight off" els
look = 0
lighton = 0
while look < 10
system 'stty cbreak'
q = $stdin.sysread 1
case q ### #{q}
when "l" then if lighton==1 then lighton=0 and puts "ight off"
else lighton=1 and puts "ight on" end
end
system 'stty cooked'
look += 1
end #while
我想在
if
和else
部分中添加几个语句,但不能 我对ruby一无所知,但是由于在之后发生了很多事情,那么在你的if语句中,你需要对它们进行分组吗?ie Java你会把它们放在{}我对ruby一无所知,但是由于在之后发生了很多事情,那么在你的if语句中,你需要对它们进行分组吗?ie Java你会把它们放在{}没有限制,你只是误用了和操作符。它不是要做“这个和那个”,而是“做这个,如果是真的,也做这个”。下面是一个简单的例子:
1 and puts 'falsy'
nil and puts 'truthy'
# prints: falsy
由于put
返回nil
,这是falsy,放置“hello”并放置“world”
将只打印“hello”
因此,不要使用和
来创建一行程序。你可以使用代码>相反,但这无助于可读性。相反,只需使用多行!现在发生的事情更清楚了:
case q
when "l"
if lighton == 1
lighton = 0
puts "light off"
puts "light still off"
else
lighton = 1
puts "light on"
end
end
您可能希望了解更多信息。没有限制,您只是误用了和
运算符。它不是要做“这个和那个”,而是“做这个,如果是真的,也做这个”。下面是一个简单的例子:
1 and puts 'falsy'
nil and puts 'truthy'
# prints: falsy
由于put
返回nil
,这是falsy,放置“hello”并放置“world”
将只打印“hello”
因此,不要使用和
来创建一行程序。你可以使用代码>相反,但这无助于可读性。相反,只需使用多行!现在发生的事情更清楚了:
case q
when "l"
if lighton == 1
lighton = 0
puts "light off"
puts "light still off"
else
lighton = 1
puts "light on"
end
end
您可能希望阅读更多关于