Swift랑 친해지기/Swift PlayGround
논리연산자OR - 이것 또는(OR) 저것 확인하기
데브킹덕
2021. 12. 27. 16:02
첫번째로 만들어 본 코드
이렇게 실행하게 되면 마지막에 굳이 한번 오른쪽으로 더 회전하고 보석을 수집하게 된다.
for i in 1 ... 12 { // 12번동안 반복해라
moveForward() // 앞으로 한칸이동
if isBlocked || isBlockedLeft { // 만약에 앞이 막혀있거나 왼쪽이 막혀있으면
turnRight() // 오른쪽으로 돌아라
}
}
collectGem() // 반복문 구문이 끝나면 보석을 수집해라
불편해서 만들어 본 코드
for i in 1 ... 12 { // 12번 반복해라
moveForward() // 앞으로 한칸 이동
if isBlocked && isBlockedLeft{ // 만약 앞과 왼쪽 벽이 막혀있다면
collectGem() // 보석을 수집해라
}else if isBlocked || isBlockedLeft { // 만약 앞쪽 벽이 막혀있거나 왼쪽 벽이 막혀있으면은
turnRight() // 오른쪽으로 회전해라
}
}
오른쪽으로 한번 더 안돌아 보게 하기 위해 앞과 왼쪽벽이 모두 막혀 있으면 보석을 수집해라 라는 조건문을 넣었다.
OR 논리연산자 이후에 AND연산자를 위치시키면 어짜피 오른쪽으로 한번 도는 것을 똑같다.
때문에 AND연산자를 먼저 위치시키면은 마지막 오른쪽으로 한바퀴 돌지 않고 보석을 수집할 수 있다.