컴퓨터/C
프로그램에서 반복문은 사용자가 만든 소스코드 구조를 반복적으로 활용하기 위해 필요합니다.
반복문의 대표적인 기본 예시인 구구단을 한번 생각해볼까요? 2단을 출력한다고 가정해 봅시다.
9번의 출력문을 여러분의 소스코드에 작성해야 될 것입니다.
#include<stdio.h>
int main()
{
printf("2 * 1 = 2");
printf("2 * 2 = 4");
printf("2 * 3 = 6");
.....
}
구구단만 해도 엄청나게 많은 소스코드를 작성해야 될 것입니다.
우리는 변수와 상수의 개념을 알고 C언에서 사용할 수 있습니다. 여기에 반복문의 개념을 알고 사용한다면 아주 효율적인 소스코드를 만들 수 있게 될 것입니다.
C언어에서 제공하는 반복 문법은 3가지가 있습니다.
본문에서는 while문을 알아보도록 하겠습니다.
이 while반복문은 보통 특정 이벤트가 발생할 때까지 무한으로 반복하는 경우에 많이 사용하는 반복문입니다.
사용 방법은 다음과 같습니다.
while(조건or조건식) { 소스코드 } |
예제 1 ) 기본 형태 (무한 반복)
#include <stdio.h>
int main()
{
while (1)
{
printf("반복문의 조건은 1 입니다.\n");
}
while (0)
{
printf("반복문의 조건은 0 입니다.\n");
}
}
무한 반복으로 반복문을 돌리는 형태입니다. 반복문의 마지막에 알아볼 제어문과 함께 사용을 하는 형태입니다. 조건이 만족하는 경우 무한하게 반복을 합니다.
예제 2 ) 구구단 2단 출력해보기
#include <stdio.h>
int main()
{
int num = 2;
int num_2 = 1;
while (num_2 <= 9)
{
printf("%d * %d = %d\n", num, num_2, num * num_2);
//num_2 = num_2 + 1;
//num_2 += 1;
num_2++;
}
}
위의 소스코드를 해석하자면 다음과 같습니다.
예제 3 ) 구구단 단 출력해보기 - 중첩 while문 사용
한번 while문 2개를 사용해서 만들어 보세요!
결과 보기
#include <stdio.h>
int main()
{
int num = 2;
int num_2 = 1;
while (num <= 9) // 1번째 반복문
{
while (num_2 <= 9) //2번째 반복문
{
printf("%d * %d = %d\n", num, num_2, num * num_2);
num_2++;
}
printf("\n");
num++;
num_2 = 1; // 2번째 반복문을 다시 1부터 시작하기 위해서 값 초기화
}
}
이런 식으로 다양한 방법으로 활용하여 소스코드를 효율적으로 작성할 수 있습니다.
예제 4 ) 인터페이스에 반복문 활용해 보기
아래 예제를 무한 반복하여 모든 명령 수행 시 다시 초기화면으로 갈 수 있게 해 보세요
(main_menu진입 이후부터!)
#include <stdio.h>
int main()
{
int main_menu;
int sub_menu;
printf("플레이어 육성 게임\n");
printf("1.불러오기\n");
printf("2.새로하기\n");
printf("3.종료\n");
printf("원하는 메뉴를 선택 하세요 : ");
scanf_s("%d", &main_menu);
switch (main_menu)
{
case 1:
case 2:
printf("1.정보 확인하기\n");
printf("2.사냥터로 이동\n");
printf("3.상점으로 이동\n");
printf("4.메인화면으로 이동\n");
printf("5.게임 종료하기\n");
printf("원하는 메뉴를 선택 하세요 : ");
scanf_s("%d", &sub_menu);
switch (sub_menu) // 메뉴안의 메뉴 !
{
case 1:
printf("정보 확인메뉴에 들어왔습니다.\n");
break;
case 2:
printf("사냥터 이동메뉴에 들어왔습니다.\n");
break;
case 3:
printf("상점 이동 메뉴에 들어왔습니다.\n");
break;
case 4:
printf("메인 화면으로 이동 메뉴에 들어왔습니다.\n");
break;
case 5:
printf("게임 종료하기 메뉴에 들어왔습니다.\n");
break;
default:
printf("잘못된 값을 입력했습니다.\n");
break;
}
break;
case 3:
printf("게임을 종료 합니다.\n");
break;
default:
printf("잘못된 값을 입력했습니다.\n");
break;
}
}
결과 보기
#include <stdio.h>
int main()
{
int main_menu;
int sub_menu;
printf("플레이어 육성 게임\n");
printf("1.불러오기\n");
printf("2.새로하기\n");
printf("3.종료\n");
printf("원하는 메뉴를 선택 하세요 : ");
scanf_s("%d", &main_menu);
while(1)
{
switch (main_menu)
{
case 1:
case 2:
printf("1.정보 확인하기\n");
printf("2.사냥터로 이동\n");
printf("3.상점으로 이동\n");
printf("4.메인화면으로 이동\n");
printf("5.게임 종료하기\n");
printf("원하는 메뉴를 선택 하세요 : ");
scanf_s("%d", &sub_menu);
switch (sub_menu) // 메뉴안의 메뉴 !
{
case 1:
printf("정보 확인메뉴에 들어왔습니다.\n");
break;
case 2:
printf("사냥터 이동메뉴에 들어왔습니다.\n");
break;
case 3:
printf("상점 이동 메뉴에 들어왔습니다.\n");
break;
case 4:
printf("메인 화면으로 이동 메뉴에 들어왔습니다.\n");
break;
case 5:
printf("게임 종료하기 메뉴에 들어왔습니다.\n");
break;
default:
printf("잘못된 값을 입력했습니다.\n");
break;
}
break;
case 3:
printf("게임을 종료 합니다.\n");
break;
default:
printf("잘못된 값을 입력했습니다.\n");
break;
}
}
}
소스코드가 효율적으로 변경되진 않지만 이런 식으로 게임의 구조를 계속해서 반복시킬 수 있게 됩니다.
C 언어 - 반복문 do while문 (0) | 2021.06.05 |
---|---|
C 언어 - 반복문 for (0) | 2021.06.04 |
C 언어 - 중간 정리 (0) | 2021.06.02 |
C 언어 - 조건문 switch (0) | 2021.06.02 |
C 언어 - 표준 입력 (0) | 2021.06.01 |
91년생 공학엔지니어의 개발일지
TODAY :
YESTER DAY :
TOTAL :
Commnet