//--- while //표현식//while 조건 {// 실행문//}var i =0while i <10 {
print(i)
if i ==5 {
break
}
i +=1
}
//// 이경우 에는 조건을 먼저 보고 코드수행을 하게된다.// break -- 코드를 넣어두면 만족할때에 더이상 반복하지 않고 중단.
i =0repeat {
print(i)
i +=1
} while i <10// 이경우에는 코드수행을 먼저 하고 조건을 검사한다.
Closed Range ( 마지막 정수를 포함하는 범위) - let closedRangee = 0...10 //{lowerBound 0, upperBound 10} 로그에는 0부터 10까지 찍힌다
halfClosedRange ( 마지막 정수를 포함하지 않는 범위) - let halfClosedRange = 0..<10 // {lowerBound 0, upperBound 10} 로그에는 0부터 9까지 찍힌다
For문을 표현하는 두가지 방식
for i in closedRangee {
if i %2==0 {
print("---> 짝수: \(i)")
}
}
for i in closedRangee where i %2==0 {
print("---> 짝수: \(i)")
}
//where은 where 다음의 코드가 만족할때 다음의 코드가 실행된다
Continue를 사용하면 특정한 부분을 건너 뛸 수 있다
for i in closedRangee {
if i ==3 {
continue
}
print("---> \(i)")
}
for 문을 중첩해서 사용할수 있지만 가독성이 떨어지고 성능에도 좋지 않기 때문에 많이 쓰이는걸 지양해야 한다.
for문을 반대로 돌려보자. stride
// 0까지에서 to는 자기 자신을 포함하지 않는다// 5에서 부터 0까지 -1의 움직임으로 라는 의미이다for i instride(from: 5 , to: 0, by: -1)
{
print(i)
}
// 5, 4, 3, 2, 1//만약 0을 포함하고 싶다면 to가 아닌 through를 적으면 된다. for i instride(from: 5 , to: 0, by: -1)
{
print(i)
}
// 5, 4, 3, 2, 1, 0
Swift에서는 다른 언어와 달리 switch를 지원하는 강력한 기능이 있다 기본적으로 스위치는 case에 작성된 코드의 조건에 맞을때 실행된다.
다른 언어와 비슷하게 스위치는 특정한 조건을 만족하면 값을 실행 시킨다
주의 해야할 것은 중간에 만족하는 조건을 만나게 되면 실행시키고 스위치 구문이 중단되게 된다.
default값을 주지 않으면 에러가 발생되게 된다 == 모든 케이스에 대해 조건을 줘야한다.
case 의 조건을 0...10 이렇게도 설정할수 있다.
스위치 구문 1번 케이스
let num =10switch num {
case0:
print("--> 0 입니다")
case0...10: // 이런식으로 ... spred syntax 사용가능print("--> 0 ~ 10사이 입니다")
case10:
print("--> 10 입니다")
default :
print("--> 나머지 입니다")
}
스위치 구문 2번 케이스
let pet ="bird"switch pet {
case"dog", "cat", "bird" : // 이런식으로 , 다음에 케이스 추가가능print("--> \(pet) 입니다")
default:
print("---> 잘 모르겠습니다")
}
스위치 구문 3번 케이스
let number =20switch number {
case_where num %2==0: // where문을 사용해서 조건 주기가 가능하다, 또한 _ 는 아무것도 넣지 않을때 사용된다print("---> 짝수")
default:
print("---> 잘 모르겠습니다")
}
스위치 구문 4번 케이스
let coordinate = (x: 0, y:10)
switch coordinate {
case (0, 0):
print("---> 원점이네요")
case (_, 0):
print("---> X축 이네요")
case (0, _):
print("---> Y축 이네요") // _ 뭐가되든 상관없어 x가 0이면되default:
print("---> 좌표 어딘가")
}
switch coordinate {
case (0, 0):
print("---> 원점이네요")
case (let x, 0):
print("---> X축 이네요, x:\(x)")
case (0, let y):
print("---> Y축 이네요m y:\(y)") // _ 뭐가되든 상관없어 x가 0이면되case (let x, let y) where x == y:
print("---> x와 y가 같네요 x,y : \(x), \(y)")
case (let x, let y):
print("---> 좌표 어딘가 x,y : \(x), \(y)")
}
// 안에 변수를 선언해서 프린트 문자열에 넣어줄수도 있고// where 을 사용해서 추가적인 조건을 넣을 수도 있다