C++ 17에서 추가된 기능으로 if 문 안에서 이니셜라이저 (초기자)를 넣는 기능이 추가됐다고 한다.
간단하게 설명하면 if 문안에서 변수를 정의하고 그것을 바로 조건문에서 사용할 수 있는 것인데 이곳저곳에 쓸 일이 많을 거 같아 적었다.
if ( <이니셜라이저>; <조건문>) { <본문> }
문법은 위와 같고 이니셜라이저에서 정의한 변수는 <조건문>과 <본문> 안에서만 사용할 수 있다.
+) switch 문에서도 이니셜라이저를 지원한다. 문법은 아래와 같고 if 문에서와 마찬가지로 <조건문>과 <본문> 안에서만 사용할 수 있다.
switch (<이니셜라이저>; <표현식>) { <본문> }
int main()
{
int i = 10;
// if 문 이니셜라이저
if (int test = i; test > 0)
cout << "Wha!";
// switch 문 이니셜라이저
switch (int test = i + 20; test)
{
case 10:
cout << "i 인가?";
break;
case 30:
cout << "test 인가?";
break;
default:
break;
}
}