Swift랑 친해지기/Swift PlayGround

현상금의땅- while문, for문 활용

데브킹덕 2021. 12. 28. 14:44

while문만 이용한 코드 

while !isBlocked {             // 앞이 막혀있지 않는동안
    moveForward()              // 한칸 이동
    if isOnClosedSwitch {      // 스위치가 닫혀있다면
        toggleSwitch()         // 스위치를 켜라
    }
}  
turnRight()                    // 오른쪽으로 돌아라
moveForward()                  // 한칸이동
turnRight()                    // 오른쪽으로 돌아라
moveForward()                  // 한칸이동
while isOnGem {                // 보석이 있는동안
    collectGem()               // 보석을 수집해라
    moveForward()              // 앞으로 한칸이동
}
turnLeft()                     // 왼쪽으로 돌아라
moveForward()                  
turnLeft()
while !isBlocked {             // 앞이 막혀있지 않는동안
    moveForward()
    if isOnClosedSwitch {      // 스위치가 닫혀있다면
        toggleSwitch()         // 스위치를 켜라
    }
}

 

함수정의후 for, while 활용한반복문

func collectAndtoggle(){          // 함수 collectAndtoggle 만듦 
    if isOnClosedSwitch{          // 스위치가 닫혀있으면
        toggleSwitch()            // 스위치를 열고
    }  
    if isOnGem{                   // 보석이 있으면
        collectGem()              // 보석을 수집해라
    }
    moveForward()                 // 앞으로 한칸이동
}

for i in 1 ... 3 {                // 3번 반복문
    while !isBlocked{             // 앞이 막혀있지 않는동안
        collectAndtoggle()        // collectAndtoggle 함수를 실행
    }
    if isBlocked && isBlockedLeft{  // 앞과 왼쪽 벽이 막혀있으면
        turnRight()                 // 오른쪽으로 회전하고
        moveForward()               // 앞으로 한칸 이동후
        turnRight()                 // 오른쪽으로 회전해라 
    }else if isBlocked && !isBlockedRight{   // 앞의 벽이 막혀있고 오른쪽벽이 막혀있지 않으면
        turnLeft()                           // 왼쪽으로 회전하고
        moveForward()                        // 앞으로 한칸이동
        turnLeft()                           // 왼쪽으로 회전해라
    }
    
}

마지막에 한칸 이동하는게 마음에 들지 않지만 논리연산자를 통하여 코딩해 보았다. 

 

Swift Playground - 스위프트 플레이그라운드

코딩배우기1 - 현금의 땅

'Swift랑 친해지기 > Swift PlayGround' 카테고리의 다른 글

임의의 직사각형  (0) 2021.12.28
루프내포시키기  (0) 2021.12.28
for문, while문 활용문제2  (0) 2021.12.27
while문, for문 예제  (0) 2021.12.27
알맞은 루프 선택하기  (0) 2021.12.27