当前位置:  开发笔记 > 后端 > 正文

为什么我没有得到相同的结果使用while和直到红宝石?

如何解决《为什么我没有得到相同的结果使用while和直到红宝石?》经验,为你挑选了1个好方法。

好的,我在windows x64上使用Ruby 2.26.问题是,我真的只是学习如何编写代码的新手,所以我不确定这是一个真正的错误,还是只是我的错误,因为这个错误非常简单,它有点愚蠢(?)@_ @

'while'和'until'运算符.

我所知道的,

action = gets.chomp
until action == "a" || action == "b"
  puts "Answer a or b"
  action = gets.chomp
end

puts "The answer: " + action

action = gets.chomp
while action != "a" || action != "b"
  puts "Answer a or b"
  action = gets.chomp
end

puts "The answer: " + action

应该导致同样的事情.但是在这里使用'while'运算符,即使我在powershell上的用户输入上加上"a"或"b",也会让我无限循环.谁能告诉我为什么会这样?或者这真的是一个错误吗?(这是一段时间的耻辱,直到操作员应该是一个非常基本的逻辑运算符吗?)



1> Eric Duminil..:

相反的

action == "a" || action == "b"

action != "a" && action != "b"

参见德摩根定律.

你的代码
action != "a" || action != "b"

总是true:

如果action"a",它是false || true,是true

如果action"b",它是true || false,是true

如果action不是,那就是true || true,是true

所以你的循环真的如此while true.

注意:Ruby肯定存在缺陷,其中一些可能很简单.但这并不意味着你不理解的任何东西都是一个bug.;)

语言和布尔逻辑

从句子中提取布尔逻辑并不总是那么容易:

"你喜欢猫狗"

你想知道你是否喜欢animal.为此,您需要检查animal是狗还是猫.

如果你检查那animal是一只狗一只猫,你肯定不会喜欢这种动物!

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有