一般的にSwiftとコンピュータサイエンスの新機能です。 Appleのドキュメントに加えて、iPadをSwift Playgroundで教育しています。 Swift Playgroundの中で、私のコードの目標は、迷路を通して私の性格を得ることです。次のコードは正しく私の迷路かかわらず、私を取得します:私の混乱があるのはここ論理演算子 'AND'/'OR' Swift whileループ
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(||)が正しく実行されなければならない理由を理解できないことです。条件が1つしかなく、AND演算子が使用されているときに 'navigateAroundWall'が実行されるのはなぜですか?
以下は迷路の視覚化に役立つ画像です。わかるように、私のキャラクターが宝石とスイッチ(右下にあるタイル)に同じように表示されることはありません時間。