iOS (스파르타)
Swift Playgrounds 코딩 배우기 1
가애야
2024. 6. 25. 18:21
코딩배우기는
명령, 함수, For 루프, 조건 코드, 논리 연산자, While 루프 까지 전에 했어서
알고리즘 부터 이어나갔다
자 이제 코드를 진행해보자
이거 전에 하다가 실패해서 여기서 멈췄었다,,,ㅎ
스위치 키는거까지는 다 되는데 저 외계인이 안멈춰서 그냥 넘겼던,,문제
break를 걸어주면 되는거였다..
해결 ㅎ
이거는 당황스러웠던게
func navigateAroundWall() {
if isBlocked && isBlockedRight {
turnLeft()
} else if isBlockedRight{
moveForward()
} else {
turnRight()
moveForward()
}
}
이 코드를
func navigateAroundWall() {
if isBlockedRight {
moveForward()
} else if isBlocked && isBlockedRight{
turnLeft()
} else {
turnRight()
moveForward()
}
}
이렇게 하면 코드 else if 에 적어준 조건에서 실행이 안됐었다
조건문을 실행할 때 조건의 순서와 논리적 관계는 매우 중요해서 두 번째 코드에서 else if 문이 실행되지 않은 이유는 첫 번째 if 조건이 더 단순하고 더 자주 참일 가능성이 있기 때문이다. 첫 번째 if 조건이 참일 때 else if 조건까지 도달하지 않기 때문에 두 번째 조건이 실행되지 않은 것이다. 그래서 순서를 바꿔 isBlocked && isBlockedRight 조건 먼저 확인하고 isBlockedRight 조건을 확인해주는 코드로 작성해야 한다.
이거 break어떻게 걸어야하나 한참 고민함 ㅋㅋㅋㅋㅋㅋ
무한루프로 안끝나서 ㅠ 아니근데 마지막 스위치온인거 브레이크안걸어봐서 고민이 많았다고,,,