C 스타일의 for문은 조건과 증감식을 명시적으로 작성해야 하기 때문에 코드 가독성을 저하시키고, 이를 for문마다 반복적으로 작성해야 하기 때문에 코드 중복을 유발하기 때문에 deprecated 되었습니다.
특정 조건을 만족하지 않은 채로 후속 코드를 실행하면 심각한 오류가 발생할 경우에 전체 구문을 조기 종료하기 위한 목적으로 사용된다. 따라서 else 블록에는 이후의 코드 진행을 막아주기 위해 return 또는 break 구문을 통해 조기 종료 처리를 해줘야 한다.
보통 return 구문을 통해 조기 종료 처리를 해주는데 해당 구문이 실행되면 이후의 코드가 남아있더라도 더 이상 진행하지 않은 채로 함수가 종료된다.
물론 guard문을 if문으로 대체 가능하지만 조기 종료를 목적으로 사용하는 만큼 코드를 중첩해서 사용하지 않아도 된다는 장점이 있다. 아무리 guard문을 사용해도 코드의 깊이가 깊어지지 않기 때문이다.
if/guard문처럼 분기문의 일종이지만, 조건식으로 분기 처리를 하는 것이 아닌 패턴 매칭으로 분기 처리를 한다. 나열된 패턴들을 순서대로 비교하다가 가장 먼저 일치하는 패턴의 코드 블록이 실행된다.
C나 자바와 같이 많은 언어에도 switch문이 있지만 swift에서의 switch문과 실행방식에서 차이가 있다. 다른 언어에서는 일치하는 패턴의 코드 블록을 실행한 나머지 패턴에 대한 비교를 모두 하고 분기문이 종료되지만 swift에서는 일치하는 패턴의 코드 블록을 실행하면 바로 분기문을 종료한다.
케이스는 where절을 통해 좀 더 복잡한 패턴으로 확장할 수도 있다.