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어떻게 걸어야하나 한참 고민함 ㅋㅋㅋㅋㅋㅋ

무한루프로 안끝나서 ㅠ 아니근데 마지막 스위치온인거 브레이크안걸어봐서 고민이 많았다고,,,