본문 바로가기

컴퓨터 언어

[C++] 반복문과 연습

C++에서는 반복문과 제어문을 통해 프로그램의 흐름을 제어할 수 있다.

 

 

 

[반복문]

 

특정 작업을 여러번 반복하는, 블록 안의 내용을 여러번 실행하는 문장이다.

 

1) for 루프(for loop)

 

for 문은 초기화, 조건 검사, 반복 후 작업을 정의하는 증감연산의 세 가지 부분으로 구성된다. 이를 사용하여 특정 횟수의 반복 작업을 수행할 수 있다.

 

for ( 초기화; 조건; 증감연산)

{

        실행할 코드

}

의 형식을 갖는다.

i가 5가 될 때까지 0,1,2,3,4 총 5번 반복하게 된다.

 

2) while 루프(while loop)

 

while 문은 조건이 참일 때 계속해서 코드를 반복하는 루프이다.

 

while( 조건 )

{

       실행할 코드

}

의 형식을 갖는다.

 

조건식에 부합하지 않을경우 n의 값은 식의 끝에서 1씩 증가하므로 총 5번의 루프를 하게 된다.

 

 

2-1) do while 루프(do while loop)

 

do-while 루프는 루프를 한 번 실행한 후 조건을 검사하는 루프로, 최소한 한 번의 실행을 보장한다.

 

do

{

      실행할 코드

} while ( 조건 )

의 형식을 갖는다.

 

while문의 조건식이 true가 되지 않더라도 do { }문은 최소 1번은 실행하게 된다.

 

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

<연습 - 콘솔창으로 모양 표현하기>

 

1) 

위의 모양은 이중 for문으로 표현할 수 있다.

먼저 바깥 for문이 0일 때 안쪽 for문에서 "*"을 5번 실행하고 이것을 바깥 for문의 i가 5가 될 때까지 반복 하므로

5 x 5의 별 모양이 만들어진다.

 

 

2)

위의 모양은 세로 줄 개수에 비례하여 별을 작성하는 것으로 표현할 수 있다.

 

바깥의 for문을 통해 (i+1)개의 세로 줄이 표현되므로 줄 수에 맞게 별을 (i+1) 번 만든다.

 

 

3)

 

 

제일 어려웠던 문제로 하나의 코드로 표현하는게 아니라 두 개의 for 문으로 나누어서 표현하였다.

먼저 첫번째 for문은 5번째 줄까지 별의 개수가 증가한다. 다만 전과 같이 줄에 비례하여 1개씩 증가하는게 아니고 별이 중간에 존재하기 때문에 별 앞의 여백이 줄에 비례하여 감소하는걸 표현해야했다.

따라서 5줄까지 blank는 4개에서 시작하여 4 - i식 대로 0개로 감소하였고 star는 1개에서 시작하여 2 * i + 1식 대로 9개까지 증가하였다.

 

두번째 for문은 다시 감소하는 별의 개수를 표현한다. 5줄에서 0개까지 감소한 blank는 6번째 줄에서 1개에서 시작하여      i + 1 식 대로 4개까지 증가하고 star는 7개에서 시작하여 7 - (2 * i) 식 대로 1개까지 감소하게 된다.

'컴퓨터 언어' 카테고리의 다른 글

[C#] 델리게이트와 이벤트  (0) 2023.11.10
[C#] 인터페이스  (0) 2023.11.07
[C#] 구조체와 클래스  (0) 2023.11.06
[C++] 다형성, 추상성  (0) 2023.11.04
[C++] OOP - 캡슐화, 상속  (0) 2023.11.01