[42Seoul] CPP Module 01 - ex06

수빈·2022년 1월 11일
0

42CPP

목록 보기
11/11
post-thumbnail

switch

switch문은 조건부 분기 문을 제공한다.

void	testSwitch(int a)
{
    switch(a)
    {
        case 0:
        // do something...
        case 1:
        // do something...
        case 2:
        // do something...
    }
}

switch 표현시기 값을 평가하고, 각 case의 값과 같은지 테스트하고 같을 경우 해당 case안의 코드를 실행한다.

간단하게.. a가 a==0이면 case0부터 case2까지 실행할 수 있는 (break가 있으면 멈춤) 개꿀 함수가 되겠다.

main.cpp를 인자를 받는 식으로 바꾸고 해당 값과 ex05에서 한 것처럼 반복문을 통해 같은 level을 만나면 이후에 주어진 포인터의 level도 연속으로 실행을 한다.

int	flag = 0;
	for(int i = 0; i < 4; i++)
	{
		if (levels[i] == level)
		{
			switch (i)
			{
				case 0:
						(this->*funcs[0])();
						flag++;
				case 1:
						if (i != 1)
							std::cout << std::endl;
						(this->*funcs[1])();
						flag++;
				case 2:
						if (i != 2)
							std::cout << std::endl;
						(this->*funcs[2])();
						flag++;
				case 3:
						if (i != 3)
							std::cout << std::endl;
						(this->*funcs[3])();
						flag++;
			}
		}
	}
	if (flag == 0)
		std::cout << "[ Probably complaining about insignificant problems ]" <<std::endl;

profile
42Seoul -soooh ~ 2022.04

0개의 댓글