- 제어문

리문·2022년 4월 12일
0

제어문

1. 조건문 : 특정 조건에 따라서 실행문을 실행할지 안할지 제어.

: if / switch

2. 반복문 : 특정 조건에 따라서 실행문을 일정 횟수만큼 반복 실행 제어

: while / for

조건문

1-1. if 문

    if (조건식)
    {
         실행문1; 
    }
    
    else if (조건식2)

    {
          실행문3;
    }

    else

    {
         실행문2;
    }

※ if문 실습.
정수를 하나 입력 받아서 입력 받은 숫자가 10보다 크면 "입력된 숫자가 10보다 큽니다." 출력.
10 이하 9초과 이면 "9보다 큽니다." 출력.
9 이하 6 초과 이면 "6보다 큽니다." 출력.
그 이외에는 "6보다 작거나 같습니다." 출력.
->
int inputNum;
cout << "숫자를 입력해주세요." << endl;
cin >> inputNum;
if (inputNum > 10)
{
cout << "입력된 숫자가 10보다 큽니다." << endl;
}
else if (inputNum > 9)
{
cout << "입력된 숫자가 9보다 큽니다." << endl;
}
else if (inputNum > 6)
{
cout << "입력된 숫자가 6보다 큽니다." << endl;
}
else
{
cout << "6보다 작거나 같습니다." << endl;
}
입력
int input_num;
cin >> input_num;
출력
if (input_num > 10)
{
cout << "입력된 숫자가 10보다 큽니다." << endl;
}
else if (input_num > 9) // (10 >= input_num > 9) -> (10 >= input_num && input_num > 9)
{
cout << "입력된 숫자가 9보다 큽니다." << endl;
}
else if (input_num > 6)
{
cout << "입력된 숫자가 6보다 큽니다." << endl;
}
else
{
cout << "입력된 숫자가 6보다 작거나 같습니다." << endl;
}

1-2. switch 문

    switch (정수형 변수)
    {
          case 정수1:
                 실행문1;
          break;
          case 정수2:
                 실행문2;
          break;
          case 정수3:
                 실행문3;
          break;
          default :     //해당하는 정수값이 없을 때.
                 실행문4;
          break;
    }
      

※switch문 실습.
당신의 고향은 어디입니까 ?
1. 서울 2. 양평 3. 광주 4. 대전 5. 제주도
default 5개중에 선택해 주세요.
안녕하세요.당신의 고향은 서울이군요.
->
int yourHometown;
cout << "당신의 고향을 선택해주세요." << endl;
cout << "1. 서울 2. 양평 3. 광주 4. 대전 5. 제주도" << endl;
cin >> yourHometown;
switch (yourHometown)
{
case 1:
cout << "안녕하세요. 당신의 고향은 서울이군요." << endl;
break;
case 2:
cout << "안녕하세요. 당신의 고향은 양평이군요." << endl;
break;
case 3:
cout << "허벌나게 반갑구마잉. 광주사람을 여기서 만나네잉." << endl;
break;
case 4:
cout << "안녕하셔유. 대전 좋쥬~" << endl;
break;
case 5:
cout << "안녕하수광. 제주에서 왔멘?" << endl;
break;
default :
cout << "5개 중에 선택해주세요!" << endl;
break;
}

-> if문으로 변환
if (yourHometown == 1)
{
cout << "안녕하세요. 당신의 고향은 서울이군요." << endl;
}
else if (yourHometown == 2)
{
cout << "안녕하세요. 당신의 고향은 양평이군요." << endl;
}
else if (yourHometown == 3)
{
cout << "안녕하세요. 당신의 고향은 광주이군요." << endl;
}
else if (yourHometown == 4)
{
cout << "안녕하세요. 당신의 고향은 대전이군요." << endl;
}
else if (yourHometown == 5)
{
cout << "안녕하세요. 당신의 고향은 제주이군요." << endl;
}
else
{
cout << "5개 중에 선택해주세요." << endl;
}

2-1. while 문

     while (조건식)
     {
         실행문;
         조건식을 바꾸는 실행문;  // while문을 중단시키는 첫번째 방법.

         if (조건식)
         {
               break;           // while문을 중단시키는 두번째 방법 
         }

         break; // 실행문이 한번 실행되고 while문이 종료됨.

     }

     - do-while 문
      
      do
      {
             실행문;
      }
      while (조건식);

조건문을 바꾸는 실행문을 이용하여 중단시키는 방법
int repeat_count = 0;
->while (repeat_count < 5)
{
cout << "HelloWorld!" << endl;
repeat_count++;
}

if문을 이용해 중단시키는 방법
while (1)
{
cout << "HelloWorld!" << endl;
repeat_count++;
if (repeat_count >= 5)
{
break;
}
}

do-while 문
do
{
cout << "HelloWorld" << endl;
repeat_count++;
}
while (repeat_count++ < 4);

※while문 실습
정답을 맞출 때까지 반복되는 프로그램으로 수정.
->
srand(time(NULL));
int correctNum = rand() % 9 + 1;
int answerNum = -1;
cout << "미리보는 정답 : " << correctNum << endl;
while (answerNum != correctNum) // 1. 조건식 수정하는 방법. -> while (answerNum != correctNum) ※ answerNum 값을 초기화 해주어야함.
{
cout << "정답을 입력해주세요." << endl;
cin >> answerNum;
(answerNum == correctNum) ? cout << "정답입니다! ^^" << endl : cout << "오답입니다 ㅠㅠ..." << endl;
2. break 조건 추가하는 방법.
if (answerNum == correctNum)
{
break;
}

}

2-2. for 문

        for (1. 초기식; 2. 조건식; 3. 증감식)
        {
              4. 실행문;
        }
        1. -> 2. -> 4. -> 3. -> 2. -> 4. -> 3. -> ... (조건식의 결과값이 0이 나올 때까지 반복!)
         

for문 실습
실습1.
10부터 1까지 차례대로 출력되는 코드를 작성해보자.
->
for (int i = 10; i > 0; i--)
{
cout << i << endl;
}

실습2.
100미만의 3의 배수를 차례대로 출력되는 코드를 작성해보자.
->
for (int i = 3; i < 100; i += 3)
{
cout << i << endl;
}

실습3.
1000미만의 2의 승수를 차례대로 출력되는 코드를 작성해보자.
->
for (int i = 1; i < 1000; i *= 2)
{
cout << i << endl;
}

실습 4.
구구단을 출력해보자.
4-1. 구구단 2단을 차례대로 출력해보자.
->
cout << "구구단 2단 출력!" << endl << endl;
for (int i = 1; i < 10; i++)
{
cout << "2 " << i << " = " << (i 2) << endl;
}
cout << endl;
4-2. 구구단 2 ~ 9단 출력.
->
cout << "구구단 2단 ~ 9단 출력!" << endl << endl;
for (int gugu_dan = 2; gugu_dan < 10; gugu_dan++)
{
for (int gugu_su = 1; gugu_su < 10; gugu_su++)
{
cout << gugu_dan << " " << gugu_su << " = " << gugu_dan gugu_su << endl;
}
cout << endl;
}
for (int i = 1; i < 10; i++)
{
cout << "2 " << i << " = " << (i 2) << endl;
}
for (int i = 1; i < 10; i++)
{
cout << "3 " << i << " = " << (i 3) << endl;
}
for (int i = 1; i < 10; i++)
{
cout << "4 " << i << " = " << (i 4) << endl;
}
for (int i = 1; i < 10; i++)
{
cout << "5 " << i << " = " << (i 5) << endl;
}
for (int i = 1; i < 10; i++)
{
cout << "6 " << i << " = " << (i 6) << endl;
}
for (int i = 1; i < 10; i++)
{
cout << "7 " << i << " = " << (i 7) << endl;
}
for (int i = 1; i < 10; i++)
{
cout << "8 " << i << " = " << (i 8) << endl;
}
for (int i = 1; i < 10; i++)
{
cout << "9 " << i << " = " << (i 9) << endl;
}
4-3. 구구단 2단 ~ 9단을 다음과 같은 형태로 출력해보자.
->
cout << " - po구구단wer -" << endl << endl;
cout << "[2단] " << "\t" << "\t" << "[3단] " << "\t" << "\t" << "[4단] " << "\t" << endl;
for (int i = 1; i < 10; i++)
{
cout << "2 " << i << " = " << (i 2) << "\t" << "3 " << i << " = " << (i 3) << "\t" << "4 " << i << " = " << (i 4) << endl;
}
cout << "[5단] " << "\t" << "\t" << "[6단] " << "\t" << "\t" << "[7단] " << "\t" << endl;
for (int i = 1; i < 10; i++)
{
cout << "5 " << i << " = " << (i 5) << "\t" << "6 " << i << " = " << (i 6) << "\t" << "7 " << i << " = " << (i 7) << endl;
}
cout << "[8단] " << "\t" << "\t" << "[9단] " << endl;
for (int i = 1; i < 10; i++)
{
cout << "8 " << i << " = " << (i 8) << "\t" << "9 " << i << " = " << (i 9) << endl;
}

profile
개발자되기 대작전

0개의 댓글