Skill Sets/Swift

[Swift] 조건문과 반복문

코코자장자장 2021. 11. 25. 23:36

안녕하세요! 오늘은 Swift의 조건문과 반복문에 대하여 알아보겠습니다!

 

Swift에서는 조건문이 다행히도 C와 매우 유사해 익히고 사용하는데 문제가 없었습니다!

 

조건문은 if, switch, guard 문이 있는데요! guard는 생소하죠?  Um... 이것은 ?와 관련이 있는듯합니다! 옵셔널이라고 하죠?

 

Swift에서는 변수나 상수가 값을 가지고 있지 않을 수도 있고 값을 가지고 있을 수도 있는 Optional이라는 것이 존재합니다!

 

nil이라고 하죠! null과 유사하면서 달라요! null은 정의된 부분으로 가보면 결국 메모리에 0이 올라가죠?

 

하지만 nil은 전혀 값을 갖고 있지 않음을 의미합니다! 나중에 차차 더 알아보도록 하고 오늘은 if와 switch만 알아보도록 해요!

 


 

if문은 C와 유사하니 바로 코드로 알아보겠습니다!

 

/* if 조건식 {
  // 실행할 구문
 }
*/

let number = 10

if number < 20 {
    print("20 미만 입니다!")
}

if number <= 20 {
    print("20 이하 입니다!")
}

if number == 20 {
    print("20 입니다!")
}

 

뭐 조건식에 쓰이는 부등호나 등호표기법도 유사합니다!

 

바로 다음으로 if-else문 까지 알아보겠습니다!

 

/* if 조건식 {
  // 실행할 구문
 } else {
  // 실행할 구문
 }
*/
let age = 12

if age < 13 {
 // 실행할 구문
    print("중학교에 입학하지 않으셨군요!")
} else {
 // 실행할 구문
    print("중학생이거나 그이상이시네요!")
}

 

else는 조건문이 참이 아니라면 빠져나와 실행되는 곳이죠?

 

이제 if-else if- else문을 알아보겠습니다!  😝

 

다들 예상하신게 맞을거에요!

 

/* if 조건식 {
  // 실행할 구문
 } else if 조건식 2{
  // 실행할 구문
 } else {
 // 실행할 구문
}
*/
let who = "밤숭이"

if who == "밤숭이" {
    print("밤숭이 입니다!")
} else if who == "아로미" {
    print("아로미 입니다!")
} else {
    print("\(who) 입니다!")
}

 

저와 여자친구의 별명입니다 ㅎㅎ...

 

마지막에 print문의 \()는 변수나 상수의 값을 콘솔에 출력할때 쓰입니다! 데이터 형에 의존하지 않아 편리하죠!

 

이번 조건문의 마지막인 switch-case문에 대하여 알아보겠습니다.

 

/*
switch 비교대상 {
    case 패턴1:
        // 패턴1 일치할때 실행되는 구문
    case 패턴2, 패턴3:
        // 패턴2,3이 일치할 때 실행되는 구문
    default:
        // 어느 비교 패턴과도 일치 하지 않을때 실행되는 구문
 }
*/

let food = "sprite"

switch food {
case "sprite":
    print("사이다 입니다.")
case "coca", "pepsi":
    print("콜라 입니다.")
default:
    print("\(food) 입니다.")
}

let level = 10

switch level {
case 0...9:
    print("쪼렙 입니다!")
case 10...14:
    print("중수 입니다.")
default:
    print("쫌 잘하시는군요!")
}

 

switch-case-default문이라고 해야 정확할듯 하네요! 왜냐면 default가 무조건 필요합니다!

 

그리고 ',' 를 이용해서 여러가지 케이스를 추가할 수 있습니다!

 

그리고 ... 은 우리가 알기론 ~와 비슷합니다! 0...9 는 0~9 까지 입니다!

 

0이상 9이하입니다

 

0이상 9미만을 원하면 0..<9라고 하실 수 있습니다!

 

하는김에 오퍼레이터 몇개 더 알려드리겠습니다!

 

~=에 대하여 아시나용?!  ~=는 범위에 대해 포함되는지 여부를 물어봐주는 오퍼레이터입니다! 신기하죠? 저는신기했어요 ㅋㅋㅋ

 

var test = (1...10 ~= 5) // true

 

test 는 Bool type으로 true가 됩니다!

 

그리고 범위식에 숫자가 하나만 있어도 됩니다..!

 

var test1 = (...10 ~= -5) // true
var test2 = (10... ~= -5) // false
var test3 = (..<10 ~= -5) // true

 

왜 편하고 좋다는지 이제 조금 느껴지더라구요! 하하

 

guard 구문은 나중에 다루도록 하겠습니다! 옵셔널에 대해서 설명하면서 설명하는게 좋을것 같더라구요!

 


말이 길어졌는데 어서 반복문도 같이 보시죠!

 

반복문은 for-in, while, repeat-while 문이 있습니다! 다 C에서 보던거랑 비슷하죠???

 

for-in 은 for문으로 비슷하고 while은 while, repeat-while은 do-while문이랑 비슷합니다!

 

백문이가 불여일견 이라고 했습니다! 예제 코드로 같이 보시죠!

 

/*
 for 루프상수 in 순회대상 { // 루프상수 = 구문이 반복될 때마다 순회대상에 포함하는아이템을 넘겨받음 // 순회대상 Set, Array, Dictionary, var
  // 실행할 구문...
 }
 */

for i in 0...10 {
    print(i)
}

let array = [1,2,5,4,5]

for i in array {
    print(i)
}

var numberArray: Array<Int> = Array<Int>()

for i in array {
    numberArray.append(i)
}
numberArray

for문은 in 뒤에 순회 대상을 넣어줘야합니다 순회대상은 범위일 수도 있고 array일 수도 있습니다!

 

여러가지 가능하니 테스트 많이 해보시면 좋을듯합니다!

 

Dictionary의 key나 value를 순회할수도 있고

 

Set또한 당연하게 가능합니다. 하지만 Dictionary와 Set는 넣은 순서대로 동작도 정렬도 되어 있지 않습니다. 아마 내부적으로 hashable이여서 그럴것이라고 예상됩니다만! 나중에 hashable에 대해서 따로 포스팅 하겠습니다 ㅎㅎ

 

뭔가 잡설이 자꾸 길어지네요!

 

끝이 얼마 안남았습니다. while문도 알아보시죠!

 

/*
 while 조건식 {
  // 실행할 구문
 }
 */

var numwhile = 5

while numwhile < 10 {
    numwhile+=10
}

var numwhile1 = 5

while numwhile1 < 5 {
    numwhile1+=10
}

while문은 조건식이 맞는지 확인하고 중괄호 내부의 실행할 구문을 실행합니다!

 

첫번째 구문은 딱한번 실행 되죠?

 

두번째 구문은 실행되지 않습니다! 조건식확인이 먼저이기 때문입니다.

 

조건식과 상관없이 한번은 무조건 실행이 필요할때 이제 쓰는게 repeat-while문입니다!

 

/*
 repeat {       // 한번은 반드시 실행되는 반복문
  // 실행할 구문
 } while 조건식
 */

var numrepeatwhile = 5

repeat {
    numrepeatwhile+=10
} while numrepeatwhile < 5

print(numrepeatwhile) // 15

 

오우 while의 조건식과 맞지 않지만 우선 한번은 실행해주네요 ㅎㅎ

 

후우 오늘은 조건식과 반복문을 살펴보았는데요!

 

생각보다 포스팅이 짧을 줄 알았는데 길어져 버렸네요 ㅎㅎ

 

몇번 쓰시다 보면 익숙해 지실테니 걱정 말고 따라해보세요! 생각보다 손에 금방 익더라구요!

 

오늘은 여기서 마무리 하겠습니다! 끝 까지 읽어쥬셔서 감사합니다! 좋은 하루 되세요!😃