조건문은 단순하게 예/아니오를 가르는 방법을 말한다.
아래 이미지를 참고 해보자.
위 이미지를 문법으로 변환해본다면,
아래 이미지와 같아진다.
이 이미지를 문장 그대로 읽어 보자.
"만약에(if) if문을 이해 했는가?
그렇다면, 다음으로 넘어 간다,
아니라면(else) if문을 공부한다"
이미지로만 봤을 때는 "저게 뭐지?" 싶었는데,
문장을 그대로 읽었을 때는 "아아~" 라며,
이해하게 되었다.

코드로 변환해 보자면,
이렇게 보여질 수 있겠다.
정리해보자면
if 다음에는 참과 거짓을 판별하는 문장이 오며,
참일 때는 if 다음의 {}를 실행하고,
거짓일 때는 else 다음의 {} 사이를 실행한다.
그러면 else는 꼭 있어야 하느냐?
아니다. 굳이 없어도 상관은 없다,
else는 개별로 사용하지 않는건
당연한것이다.
아래 이미지를 참고하면 알기가 좀더 쉽다.
이와 별개로 스위프트에서는
guard 문도 이와 비슷하다고 하는데,
필자는 if문과 guard문과의 차이가 궁금해졌다.

가드문이란 뭔가?
guard 문은 주로 함수나 메서드의 초기 조건을 체크하고,
조건이 맞지 않으면 함수에서 빠져나가는 데 사용하는것에 초점을 둔다.
조건이 거짓일 때 바로 함수나 코드 블록을 종료시키고,
참일 경우에만 이후 코드를 계속 실행하는 구조를 보인다고 한다.
guard는 반드시 else 블록과 함께 사용해야 하고,
else 블록에서는 반드시
함수의 종료(예: return, break, continue, throw)를 해주어야 한다.
그렇다면,
guard문은 어떻게 사용하는가?
func A (age: Int) {
guard age >= 18 else {
print("jun!")
return
}
print("Stay~ jun!")
}
이와 같이 사용할 수 있다는 것을 알게되었다.
음~ 여기까지는 대충 어떤 느낌인지 알았다.
그런데 필자
guard 문은 if문과는 반대라는 말을 들었다.

"도데체 어떤 점이 반대라는거지?"
"guard" 즉, 수비대(지킴이)를 말하는데,
쉽게 이해를 해보자면,
"그게 참이 맞아? 아니라고?
아니면 못들어가" 라고하는 것이다.
이 부분은 필자도 조금 문해력이 딸리는건지..
이해력이 딸리는건지.. 양쪽 다인건지는
조금 헷갈리는 부분이다.
(아마, 이건 실습을 조금 많이 해보아야 할 것 같다.)
음.. 결론을 말하자면,
조건이 참일 때와 거짓일 때의 동작이 반대인 점이 큰 차이인데,
if문은 조건이 참이면 그 아래의 코드를 실행하고,
조건이 거짓이면 else 블록을 실행하거나
아무 일도 일어나지 않는 반면,
guard문은 조건이 거짓이면 바로 함수나
블록을 빠져나가거나 실행을 멈추고,
조건이 참일 때만 이후의 코드를 계속 실행 한다.
요약해보자면,
if문 = 조건이 참일 때 실행하고, 거짓이면
실행하지 않거나 else 블록을 실행하고
guard문 = 조건이 거짓일 때 바로 종료하며,
참일 때만 이후 코드를 실행한다.
이렇게 요약해 볼 수 있겠다.

'IOS > Swift-TIL' 카테고리의 다른 글
[Swift-TIL] 함수 - 같은 동작을 하는 방법 (0) | 2024.10.15 |
---|---|
[Swift-TIL] 반복문 - 같은 코드를 반복하는 방법 (0) | 2024.10.15 |
[Swift-TIL] 컬렉션 - 여러 변수를 만드는법 (Dictionary편) (0) | 2024.10.09 |
[Swift-TIL] 컬렉션 - 여러 변수를 만드는법 (Set편) (0) | 2024.10.09 |
[Swift-TIL] 컬렉션 - 여러 변수를 만드는법 (Array편) (0) | 2024.10.09 |