作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 Swift 和计算机科学的新手。除了 Apple 文档之外,我还在 iPad 上使用 Swift Playground 来补充我的教育。在 Swift Playground 中,我的代码的目标是让我的角色穿过迷宫。下面的代码将正确地进入我的迷宫:
func navigateAroundWall() {
if isBlockedRight && isBlocked {
turnLeft()
} else if isBlockedRight {
moveForward()
} else {
turnRight()
moveForward()
}
}
while !isOnOpenSwitch {
while !isOnGem && !isOnClosedSwitch {
navigateAroundWall()
}
if isOnGem {
collectGem()
} else {
toggleSwitch()
}
turnLeft()
turnLeft()
}
这是我的困惑所在:
while !isOnGem && !isOnClosedSwitch {
navigateAroundWall()
}
要正确地穿过我的迷宫,如果我的角色“isOnGem”或“isOnClosedSwitch”,我的角色不应该“navigateAroundWall”。这个问题是我不明白为什么我的逻辑运算符必须是 AND (&&) 而不是 OR (||) 才能正确运行。为什么只有一个条件为真并使用 AND 运算符时才执行“navigateAroundWall”?
下面是一张有助于您想象迷宫的图片。如您所见,我的角色不会同时在 gem 和开关(右下角的方 block )上.
最佳答案
这是德摩根定律的简单应用:not (a or b) 等于not a and not b
在您的情况下,当 a 或 b 为真时,您不想去参加那个电话 session 。因此,这等于出现的 if 条件。
你也可以用 or 来写它,但是你需要否定它,因为你不想在那些条件下这样做。
关于ios - Swift while 循环中的逻辑运算符 'AND'/'OR',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39587077/
我是一名优秀的程序员,十分优秀!