c 언어 반복문이 헷갈립니다.
조회수 1838회
int main(void) { int a, b;
printf("넓이 : ");
scanf("%d", &a);
printf("높이 : ");
scanf("%d", &b);
while (1) {
if (a == 0 && b == 0)
break;
else if (a != 0 && b != 0) {
printf("넓이는 %d, 길이는 %d 입니다", a * b, 2 * a + 2 * b);
continue;
} else {
}
}
return 0;
}
여기서 넓이와 높이를 묻는 질문을 계속 반복하고 0 0 을 입력하면 프로그렘이 종료 되도록 하고 싶습니다만 어디를 어떠헥 고쳐야 할까요?
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
기본적으로 while에 조건문을 넣는 방법이 있어요.
while은 안의 조건문이 참일 경우에 돌아가고
while(1)
C언어에서 0이 아닌 값은true
로 표현하고 있어서입니다.그러므로 아래처럼
while(!(a == 0 && b == 0))
로 조건을 하면 a와 b가 모두 0이 아닐때까지 반복하라. 가 되겠죠.#include <stdio.h> int main(void) { int a, b; printf("넓이 : "); scanf("%d", &a); printf("높이 : "); scanf("%d", &b); while (!(a == 0 && b == 0)) { printf("넓이는 %d, 길이는 %d 입니다\n", a * b, 2 * a + 2 * b); printf("넓이 : "); scanf("%d", &a); printf("높이 : "); scanf("%d", &b); } return 0; }
아니면
break;
를 이용해서 loop를 빠져나올수도 있습니다.아래와 같이 짜면 간결하게 입력을 반복받으면서 a와 b가 0일 경우 탈출 할 수 있을 것 같습니다.
#include <stdio.h> int main(void) { int a, b; while (1) { printf("넓이 : "); scanf("%d", &a); printf("높이 : "); scanf("%d", &b); if (a == 0 && b == 0) break; printf("넓이는 %d, 길이는 %d 입니다\n", a * b, 2 * a + 2 * b); } return 0; }
댓글 입력