상세 컨텐츠

본문 제목

Loop- 2

개발생활/C C++

by 한국인맛집 2021. 4. 4. 12:19

본문

반응형

while


 

 

while문 역시 for문처럼 반복을 하도록 하는 문장입니다.

 

while문의 경우 다음과같이 구성되어있습니다.

 

while(expression[조건]){

TODO... [수행]

}

 

while문은 조건이 참이되는경우 반복을 계속 합니다.

만약 조건이 거짓이라면 반복문을 종료합니다.

 

while문은 for문과 다르게 반복의 횟수를 조건에 지정할수 없으므로, 변수를 이용하여 반복을 제어하거나, 조건문을 사용하여 종료할수 있다.

 

아래는 while문을 5번 반복하는 방법이다.

 

#include<stdio.h>

void main(){
   int loopCount = 0;
   
   while(loopCount < 5){
      printf("반복!\n");
      loopCount++;
   }
   fgetc(stdin);
}

 

#include<iostream>
using namespace std;

void main(){
   int count = 0;
   
   while(count < 5){
      cout<<"반복!"<<endl;
      count++;
   }
   
}

 

while문도 for반복문처럼 무한루프를 만들수 있습니다.

 

while(true){}

조건문에 true나 1 값을 넣으면 무한 루프를 하게 됩니다.

 

#include<iostream>

using namespace std;

void main() {
	int outLoop = 0;
	while (true) {
		printf("outloop == %d\n",outLoop);
		outLoop++;
	}
	fgetc(stdin);
}

지금과 같은 코드는 매우 안좋은 코드이다.

프로그램이 종료되지 않고 계속 루프하며 값을 출력하기 때문이다.

 

그러므로 while문이 종료가 되도록 조건문을 넣어줘야만 한다.

#include<iostream>

using namespace std;

void main() {
	int outLoop = 0;
	while (outLoop < 3) {
		printf("outloop == %d\n",outLoop);
		outLoop++;
	}
	fgetc(stdin);
}

 

 

for문=> while문으로, while문 => for문으로 변경할수 있습니다.

 

연습문제에 존재하던 별찍기를 for문으로 다음과같이 찍었다.

 

 

#include<iostream>

using namespace std;

void main() {
  for (int i = 0; i < 5; i++) {
    for (int k = 0; k <= i; k++) {
       printf("*");
    }
    printf("\n");
  }
  fgetc(stdin);
}

 

while문도 동일하게 할수 있다.

#include<iostream>

using namespace std;

void main() {
	int outLoop = 0;
	while (outLoop < 5) {
		int inloop = 0;
		while (inloop <= outLoop) {
			printf("*");
			inloop++;
		}
		printf("\n");
		outLoop++;
	}
	fgetc(stdin);
}

 

for문과 조금 다른점이라면 변수를 프로그래머가 따로 조정을 해줘야하는 점이 다른점이다.

 

그외 모든건 for반복문과 동일하다.

 

 

do-while문


 

do-whil문의구성은 다음과 같습니다.

do{
	//TODO
}
while(조건문);

do-while문은 while문과 거의 동일하지만.

 

do문장을 먼저 실행하고 while반복문의 조건을 체크하여 조건이 참이라면 do문장을 반복하는 반복문입니다.

while문과 다른점이라면 while문이 최초 1회 실행할때 조건이 거짓이라면 반복문을 실행하지 않는것이 특징입니다.

 

그에 반해 do-while문은 do문장을 실행하고 조건을 보기때문에 do 문장이 최소 1회 실행을 보장받게 됩니다.

 

최소 1회는 실행하고, 조건을 체크하여 반복을 요하는 로직이 필요할경우, do-while문을 사용하것이 바람직합니다.

 

#include<iostream>

using namespace std;

void main() {
	int count = 0;

	do {
		printf("%d 회 실행! \n",count);
		++count;

	} while (count < 3);

	fgetc(stdin);
}

 

 

 

혼자 해보기 문제

(While 문만 사용하여 문제풀이를하세요.)

 

1. 4단 8단을 출력하세요 

 

 

<출력결과>

 

 

정답.

#include<iostream>

using namespace std;

void main() {

	int loop = 4;
	while (loop < 10) {
		int innerLoop = 1;
		printf("===== %d 단 === \n\n", loop);

		while (innerLoop <= 9) {
			printf("%d * %d = %d\n", loop, innerLoop, loop * innerLoop);
			innerLoop++;
		}
		loop += 4;
	}

	fgetc(stdin);
}

 

 

 

 

2. 출력결과를 while반복문만 사용하여 출력하세요.

 

<출력결과>

정답

더보기
#include<iostream>

using namespace std;

void main() {

	int loop = 0;
	while (loop < 8) {
		int innerLoop = 0;
		while (innerLoop <= loop) {
			printf("*");
			innerLoop++;
		}
		loop += 2;
		printf("\n");
	}

	fgetc(stdin);
}

 

 

2-2

<출력결과>

 

2-3

 

 

특별문제

 

 

1번 출력

 

 

 

 

2번 출력

반응형

'개발생활 > C C++' 카테고리의 다른 글

Array  (0) 2021.04.13
Function / Header File  (0) 2021.04.13
Flow control [Conditional Statements]  (0) 2021.04.04
c/c++ Gitignore file  (0) 2021.03.30
Loop -1  (0) 2021.03.21
Basic Input & output  (0) 2021.03.14

관련글 더보기