我是Swift和计算机科学领域的新手。除了Apple文档,我还在iPad上使用Swift Playground来补充我的教育。在Swift Playground中,我的代码的目标是让我的角色通过迷宫。下面的代码将正确地得到我,虽然我的迷宫:Swift while循环中的逻辑运算符'AND'/'OR'
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'?
下面是一个图像,以帮助你形象化的迷宫..你可以看到没有任何情况下,我的角色将在一个宝石和一个开关(瓷砖在右下角)在同一个时间。