Ich bin neu in Swift und der Informatik im Allgemeinen. Zusätzlich zur Apple-Dokumentation verwende ich Swift Playground auf dem iPad, um meine Ausbildung zu ergänzen. In Swift Playground ist das Ziel meines Codes, meinen Charakter durch ein Labyrinth zu bekommen. Der folgende Code wird korrekt erhalten meine wenn mein Labyrinth:Logische Operatoren 'UND'/'ODER' in Swift While-Schleife
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()
}
Hier ist, wo meine Verwirrung liegt:
while !isOnGem && !isOnClosedSwitch {
navigateAroundWall()
}
richtig zu meinem Labyrinth zu gehen, wenn mein Charakter ‚isOnGem‘ oder ‚isOnClosedSwitch ', sollte mein Charakter nicht "navigierenWand". Das Problem damit ist, dass ich nicht verstehe, warum mein logischer Operator AND sein muss (& &), und nicht ODER (||), um korrekt zu laufen. Warum wird 'navigateAroundWall' ausgeführt, wenn nur eine Bedingung erfüllt ist und der AND-Operator verwendet wird?
Unten ist ein Bild, um Ihre Visualisierung des Labyrinths zu erleichtern .. wie Sie sehen können, gibt es keine Fälle, wo mein Charakter auf einem Edelstein und auf einem Schalter (die Kachel in der unteren rechten Ecke) gleichzeitig sein wird Zeit.