프로그램/C,C++

[C++ 기본] 9. 제어문

naudhizb 2022. 1. 29. 21:57
반응형

C언어를 사용하다보면 알게되지만, 제어문의 guard condition에 사용하는 변수는 필연적으로 해당 제어문의 scope가 아닌 제어문 바깥의 scope에 따른다.
최근의 C++17 표준에서는 제어문의 condition에 변수를 선언하여 제어문의 condition이 제어문의 안쪽에서만 사용할 수 있도록 제어문의 condition에 여러 명령을 실행할 수 있도록 하고 있다.
하지만, 가독성이 낮아질 수도 있으니, 상황에 따라 맞게 활용하여야 할 것 같다.

// 9_제어문
#include <iostream>
// 39 page.. 
int foo()
{
   return 0;
}
int main()
{
   switch (int n = foo(); n )
   {
   case 0: break;
   case 1: break;
   }
   // init control statement
   // 초기화 구문을 가진 제어문
   // C++17문법 - /std:c++latest 필요
   if ( int ret = foo(); ret == 0 )
   {
       //printf("%d\n", ret);
   }

   int ret = foo();
   if ( ret == 0)
   { 
   }
}
반응형