프로그래밍/C++

while (반복문)

FORHAPPy 2021. 9. 10. 23:10

while 의 괄호 ()안의 조건식이 참일 경우 {}안의 코드들을 계속 실행한다.

<아래그림1>  while 문으로 구구단을 만들어 보았다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
int main() {
 
    int i = 2;
    int j = 1;
 
    while (i < 10) {
        
        while (j < 10) {
            cout << i << " × " << j << " = " << i * j << endl;
            j++;
        }i++; j = 1cout << endl;
    }
}
cs

<아래그림2> 중간에 if문으로  j = 5에서 break를 걸어줬다. 

결국 두번째 while문에서 ( j < 5 )를 넣었을때랑 같은 값이다.

원하는 조건에서 반복문을 빠져나오게 할 수 있다. 

break은 본인과 가장 근접해 있는 break이 포함된 함수를 종료시킨다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
 
int main() {
 
    int i = 2;
    int j = 1;
 
    while (i < 10) {
        
        while (j < 10) {
            cout << i << " × " << j << " = " << i * j << endl;
            j++;
            if (5 == j)
                break;
        }i++; j = 1cout << endl;
    }
}
 
 
cs

<그림2에 대한 실행창>

<break 대신 return  사용 했을때의 결괏값>

return을 사용함으로써 main함수가 종료되었다.

 

<그림3>break의 지역을 바꿨을때

return을 사용함으로써 main함수가 종료되었다

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
 
int main() {
 
    int i = 2;
    int j = 1;
 
    while (i < 10) {
        
        while (j < 10) {
            cout << i << " × " << j << " = " << i * j << endl;
            j++;
            
        }i++; j = 1cout << endlbreak;
    } 
}
 
 
cs

<그림3 에대한 결괏 값>

 

 

while은 조건이 하나만 들어간다. 초기화는 따로 해줘야한다. 

그래서 보통은 while(true){}형식으로 무한루프 돌릴때 가장 많이 쓴다. 

특정한 조건에서 나와야 하는 경우에도 while문이 쓰인다. 

게임으로 예를 들면 게임을 부팅 했다가 사용자가 종료를 누르기 전까지는 계속 게임 시스템이 돌아가야하므로

이런 경우  while 이 사용된다.

 

<그림4> while과 continue가 만났을때

Hello가 출력된다. continue를 만나면 아래는 무시하고 다시 조건문으로 올라간다.

 

1
2
3
4
5
6
7
8
9
void main()
{
    while(true)
     {
         cout << "Hello" << endl;
         continue
 
         cout << "World" << endl;
     }
cs

 

<그림5> do~ while 문 : 조건을 검사하는 위치가 다르다.

따라서, 조건을 만족하지 못해도 최초 한 번을 실행 하느냐 안하느냐 의 차이이다.

또한 아래 예시처럼 입력받을 때도 사용할 수 있다.

게임에서는 한번이라도 버그가 발생하면 안되기 때문에 거의 쓰이지 않는다.

 

 

'프로그래밍 > C++' 카테고리의 다른 글

[C++]rand, sland 함수  (0) 2021.09.11
for문(반복문), size_t  (0) 2021.09.10
분기문 (if, switch, goto, while)  (0) 2021.09.10
증감연산자, 헝가리안 표기법  (0) 2021.09.10
형변환  (0) 2021.09.10