Swift랑 친해지기/Swift PlayGround
AND연산자 사용 - 이것 및(AND) 저것 확인하기
데브킹덕
2021. 12. 27. 15:38
초반 AND연산자를 이용해서 연습해 본 코드
보석이 없을경우 공백으로 놓아야 되서 문제가 되지 않을까라는 생각이 들어서
어떻게 해야 공백이 생기지 않을까 고민을 겁나 해보았다...
(다행히 공백을 두어도 실행은 되었다...)
for i in 1 ... 7 {
moveForward()
if isOnGem && !isBlockedLeft { //보석이 있고, 왼쪽에 막혀있지 않을경우
collectGem() // 보석을 수집해라
}else if !isOnGem{ // **문제발생**보석이 없을경우
// 넣을것이 없어 공백으로 두었다.
}else if isOnGem && isBlockedLeft { //보석이 있고 왼쪽이 벽으로 막혀있다면
collectGem() // 보석을 수집하고
turnRight() // 오른쪽으로 돌고
moveForward()
moveForward() // 앞으로 두칸 이동
if isBlocked && isOnClosedSwitch{ //앞이 막혀있고 스위치가 닫혀있으면
toggleSwitch() //스위치를 누르고
turnLeft()
turnLeft() // 왼쪽으로 뒤돌아보게 하고
moveForward()
moveForward() // 앞으로 두칸 이동
turnRight() // 오른쪽으로 돌아라
}
}
}
isBlockedLeft 함수를 사용하지 않을 경우도 연습해 보았다.
for i in 1 ... 7 { // 7번동안 반복
moveForward() // 앞으로 한칸이동
turnLeft() // 왼쪽으로 돌아라(벽이 있는지 확인 하기 위함)
if isOnGem && !isBlocked { //보석이 자리에 있고 앞이 막혀있지 않다면
collectGem() // 보석을 수집하고
turnRight() // 오른쪽으로 돌아라
}else if !isOnGem{ // 보석이 자리에 있지 않는다면
turnRight() // 오른쪽으로 돌아라
}else if isOnGem && isBlocked { //보석이 있는데 앞이 막혀 있다면
collectGem() // 보석을 수집하고
turnRight()
turnRight() // 오른쪽으로 두번 돌아 뒤돌아보기
moveForward()
moveForward() // 앞으로 두칸 이동
if isBlocked && isOnClosedSwitch{ //만약 벽에 막혀있으면서 스위치가 꺼져있다면
toggleSwitch() //스위치를 키고
turnLeft()
turnLeft() // 왼쪽으로 두번 돌아 뒤돌아보기
moveForward()
moveForward() // 앞으로 두칸 이동
turnRight() // 오른쪽으로 돌아라
}
}
}
최대한 간단하게 연습해본 코드
여러번 만지면서 보기 편하게는 바꾼것 같긴하다..
for i in 1 ... 7 { // 7번동안 반복
moveForward() // 앞으로 한칸 이동
if isBlockedLeft && isOnGem { // 왼쪽에 벽으로 막혀있고 보석이 있으면
collectGem() // 보석을 수집하고
turnRight() // 오른쪽으로 돌아서
moveForward()
moveForward() // 앞으로 두칸 이동
toggleSwitch() // 스위치를 누른다
turnRight()
turnRight() // 오른쪽으로 두번 돌아 반바퀴 회전
moveForward()
moveForward() // 앞으로 두칸 이동
turnRight() // 오른쪽으로 돌기
}else if !isBlockedLeft{ // 왼쪽에 벽으로 막혀있지 않으면
collectGem() // 보석을 수집해라
} // 왼쪽에 벽으로 막혀있으면 그냥 pass~
}
Swift Playground - 코딩배우기1 이것 및(AND) 저것 확인하기
논리연산자AND