Cpp.03 Loop

oat·2024년 1월 15일

C++

목록 보기
4/10
post-thumbnail

Section 03

반복문: 반복문의 정의와 for문의 형태

반복문이란?

원하는 코드를 원하는 만큼 반복하여 실행하는 코드

for 루프

for문의 형태

for (int i = 0; i<num ; i++) {
	// code
}

총 num회 반복하는 for문의 기본적인 형태이다

반복문의 규칙

  1. 반복문에 사용할 카운터의 값을 초기화 (ex. int i = 0)
  2. 반복문을 진행할 것인지 '조건 검사' (ex. i<num)
  3. 반복문 몸체를 수행 (ex. //code 부분)
  4. 카운터의 값을 변화 (ex. i++)

for문의 장점

소괄호 안에서 카운터를 정의할 수 있다


반복문: 증가/감소 연산자와 관계표현식

증가연산자/감소연산자

증가연산자

a++ 또는 ++a

감소연산자

b-- 또는 --b

코드로 알아보기


증/감 연산자가 변수의 앞에 붙느냐 뒤에 붙느냐의 차이는
이 변수의 값을 먼저 판단하고 증가시킬지 증가시키고 값을 판단할 것인지를 계산하는 것의 차이

cout << "a는 " << a << ", b는" << b << endl;

마지막에 코드를 추가해서 결과를 다시 확인해 보면 모두 +1이라는 계산을 하기 때문에 a와 b 둘 다 11로 출력이 된다

-- 감소 연산자도 이와 같은 방식으로 작동한다

관계표현식

부등호로 연결된 식
수학에서 사용하는 부등호와 완벽히 동일한 방식으로 작동한다
관계연산자의 수행값은 true나 false로만 반환된다

관계표현식의 종류

  • <: 작다
  • <=: 작거나 같다
  • >: 크다
  • >=: 크거나 같다
  • ==: 같다
  • !=: 같지 않다

대입연산자 =와 관계표현식의 ==을 혼동하지 않도록 주의
많은 컴퓨터 언어에서 !는 부정의 뜻으로 많이 사용한다


while 루프와 do while 루프

while문과 do while문은 for문과 달리 조건을 검사하는 부분만 똑 떼어서 소괄호에 정의하는 형태로 사용한다
=> 카운터가 미리 정의되어 있어야 한다

while문

while문의 형태

int 1 = 0;
while (i < 3) {
	// code
    // i 증가/감소 연산자
}

무한루프를 만들고 싶은 게 아니라면 while문의 몸체 안에 꼭 증가/감소 연산자를 선언해 주어야 한다

while문의 장점

while문은 for문과 다르게 boolean 데이터 하나만으로 소괄호 내부를 정의할 수 있다
대신, 루프 몸체 안에 그 boolean 결과값을 변화할 요소가 반드시 있어야 한다

예제


for문과 while문의 비교

for문과 while문은 소괄호 내부에 어떤 내용이 정의되어야 하는지만 다르고 완벽하게 같은 방식으로 동작한다
차이점
1. while문 내부는 boolean 데이터 하나만으로 선언될 수 있다
=> 관계표현식 없이 while문을 구성할 수 있다
2. 카운터 값을 반복문 내부에서 초기화할 수 있는지의 여부
=> for문은 소괄호 안에서 초기화 가능하나 while문은 불가능하다
<=> 반대로, for문 밖에서는 소괄호 안에서 초기화한 카운터 값을 사용할 수 없으나 while은 가능하다

do while문

반복을 실행하고 조건을 검사한다
=> while문이 false여도 무조건 한 번은 실행된다

do while문의 형태

int j = 0;
do {
	// code
    j++;
} while (j < 3);
return 0;

반복문의 활용

배열기반 반복문

배열기반 반복문의 형태

int a[5] = {1, 3, 5, 7, 9};
for (int i : a) {
	//code
}
  • 배열의 데이터형과 같은 데이터형을 가진 카운터를 선언하고, 콜론(:) 뒤에 배열의 이름을 기입한다
  • 카운터는 최초 실행 때 배열의 첫번째 원소를 가리키게 된다
  • 배열의 사이즈보다 적은 수로 초기화를 했다면 남은 원소의 부분은 모두 0으로 초기화될 것이다
    배열기반 반복문은 배열의 사이즈를 끝까지 출력하기 때문에 초기화하지 않은 0도 모두 출력하기 때문에 주의해야 한다

2차원 배열과 중첩 반복문

중첩 반복문

for문 안에 또다른 for문을 선언하여 그 반복을 중첩하여 사용하는 반복문
이 중첩 반복문은 2차원 배열에서 가장 많이 활용된다

2차원 배열

행과 열을 가진 표 형태의 배열

2차원 배열 선언

배열 안에 배열을 선언하는 방식으로 생성한다

int temp[m][n]

이렇게 배열을 선언하게 되면, m개의 원소 하나하나가 n개의 원소를 가진다는 의미이다
=> m*n 표 형태

예제



2차원 배열의 모든 값을 출력하였다

0개의 댓글