我是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'?
下面是一個圖像,以幫助你形象化的迷宮..你可以看到沒有任何情況下,我的角色將在一個寶石和一個開關(瓷磚在右下角)在同一個時間。