앞선 포스트 처럼 반복문은
-조건에 맞는동안 계속 반복
-횟수가 정해진 반복
이 2가지로 나눌 수 있다.
조건에 맞는 동안 계속 반복
예제1] -1이 입력될때까지 더한다
=>0이상의 수만 더한다.
이 흐름도에서 -1을 입력하게 된다면 빠져나오긴 하지만 한가지 문제가 생긴다. sum 단계에서 -1을 입력함과 동시에 빠져나오기 전, -1을 더하고 빠져나오게 된다.
이를 수정할 수 있는 방법은 무엇일까? 방법은 간단하다. 다시 -1을 빼주면 된다.
#include <stdio.h>
int main()
{
int sum=0;
int input=0;
while(input>-1){
scanf("%d",&input);
sum+=input;
}
sum-=input;
printf("sum= %d\n",sum);
return 0;
}
예제2] 사용자에게 계속 무언가를 할 것인지 물어보는 반복
#include <stdio.h>
void sum_input(void){
int sum=0;
int input=0;
while(input>-1){
scanf("%d",&input);
sum+=input;
}
sum-=input;
printf("sum=%d\n",sum);
return 0;
}
int main()
{
int sum,cont,input;
cont=1;
sum,input=0;
while(cont==1){
scanf("%d",&input);
sum+=input;
printf("계속 더하겠습니까?(예:1, 아니오:0)");
scanf("%d",&cont);
}
printf("sum=%d\n",sum);
return 0;
}
do-while문 사용
조건에 맞는동안 계속 반복(조건검사 전 무조건 한 번은 수행)
do{} 부분이 무조건 한번 수행한 후 조건을 비교하여 계속 수행할 것인지 판단. 무조건 한 번은 실행한다.
#include <stdio.h>
void sum_input(void){
int sum=0;
int input=0;
while(input>-1){
scanf("%d",&input);
sum+=input;
}
sum-=input;
printf("sum=%d\n",sum);
return 0;
}
void sum_input_qna(void){
int sum,cont,input;
cont=1;
sum,input=0;
while(cont==1){
scanf("%d",&input);
sum+=input;
printf("계속 더하시겠습니까?(예:1, 아니오:0)");
scanf("%d",&cont);
}
printf("sum=%d\n",sum);
return 0;
}
int main()
{
int menu;
do{
printf("메뉴를 입력하세요.: ");
scanf("%d",&menu);
if(menu!=1&&menu!=2) printf("1,2중에 입력하세요.\n");
}while(menu!=1 &&menu!=2);
return 0;
}
'Computer engineering > C' 카테고리의 다른 글
반복문-for (0) | 2021.05.06 |
---|---|
반복문-While(3) (0) | 2021.05.03 |
반복문-While(1) (0) | 2021.05.02 |
If-else 조건문 (0) | 2021.04.21 |
If 조건문 (0) | 2021.04.11 |