본문 바로가기
c++

c++ 2주차(조건문, 반복문, 배열)

by 몰라몰라개복치 2020. 4. 1.

조건문

 

주어진 조건식의 결과에 따라 별도의 명령을 수행하도록 제어하는 명령문


1) if문

 

조건식의 결과가 참(true)이면 주어진 명령문을 실행하며, 거짓(false)이면 아무것도 실행하지 않는다

 

 

**if 문에서 실행될 명령문이 한 줄뿐이라면 중괄호({})를 생략 가능.

 

+ else문 사용

if 문과 같이 사용할 수 있는 else 문은 if 문의 조건식 결과가 거짓(false)일 때 주어진 명령문을 실행

 

 

 

elseif 문

else if 문은 if 문처럼 조건식을 설정할 수 있으므로, 중첩된 if 문을 좀 더 간결하게 표현 가능

 

 

 

 

 

+Q. if 조건문 안에 다시 if 조건문이 들어갈 수 있나요?

  A.O

if 조건문 안에 다시 if 조건문을 넣어서 여러 번 판단 가능 => 중첩 if문이라고 칭함 ( ex) 점수 등급제 프로그램)

 

ex)

 

 

 

2)switch 문

 

-if / else 문과 마찬가지로 주어진 조건 값에 따라 프로그램이 다른 명령을 수행하도록 하는 조건문.

-이러한 switch 문은 if / else 문보다 가독성과 수행 속도 측면에서 더 좋음

-여러 개 중 하나를 선택할 때 사용

default 절은 조건 값이 위에 나열된 어떠한 case 절에도 해당하지 않을 때 실행

(이 구문은 반드시 존재해야 하는 것은 아니며, 필요할 때만 선언)

 

각 case 절 및 default 절은 반드시 break 키워드를 포함하고 있어야 합니다.

(**break 키워드는 조건 값에 해당하는 case 절이나 default 절이 실행된 뒤에 전체 switch 문을 빠져나가게 해줌)

 

 

결론

  • if 는 조건이 하나 또는 두가지 경우에 한정될 때 사용한다.
  • switch case 는 조건이 두가지가 넘어가는 경우 사용한다.

반복문

 

프로그램 내에서 똑같은 명령을 일정 횟수만큼 반복하여 수행하도록 제어하는 명령문

프로그램이 처리하는 대부분의 코드는 반복적인 형태가 많기에 가장 많이 사용되는 제어문 중 하나

 

C++에서 사용되는 대표적인 반복문의 형태

 

1. while 문

2. do / while 문

3. for 문

4. 범위 기반의 for 문


1) while 문

특정 조건을 만족할 때까지 계속해서 주어진 명령문을 반복 실행

 

 

-while 문은 우선 조건식이 참(true)인지를 판단하여, 참이면 내부의 명령문을 실행

-내부의 명령문을 전부 실행하고 나면, 다시 조건식으로 돌아와 또 한 번 참인지를 판단

=>이렇게 표현식의 검사를 통해 반복해서 실행되는 반복문을 루프(loop)라고 칭함

    이때, 무한루프는 while(1)로 표현함 (1은 무조건 참이라는 뜻, 0은 false)

 

ex)

 

 

 

2) do while 문

 

while 문은 루프에 진입하기 전에 먼저 조건식부터 검사

하지만, do / while 문은 먼저 루프를 한 번 실행한 후에 조건식을 검사

=> 즉, do / while 문은 조건식의 결과와 상관없이 무조건 한 번은 루프를 실행

 

 

ex)

 

 

 

3) for 문

for 문은 while 문과는 달리 자체적으로 초기식, 조건식, 증감식을 모두 포함하고 있는 반복문

따라서 while 문보다 좀 더 간결하게 반복문을 표현 가능.

 

 

 

 

4) 중첩 for문

 

for 문 내부의 또 다른 for 문이 들어 있는 형태 

총 반복 횟수= 바깥 for문 횟수 * 안쪽 for 문 횟수

 

ex)

 

**for 문을 구성하는 초기식, 조건식, 증감식은 각각 생략 가능

 >>초기식, 조건시, 증감식은 여러개 지정 가능(여러 개일 때는 콤마로 구분)

 >>초기식, 조건식, 증감식 부분에 아무것도 적지 않으면 무한루프로 실행

**초기식이 없더라도 그 자리는 반드시 세미콜론(;)으로 구분

 

+break문

-for, while, do~while 과 같은 반복문을 탈출할 때 사용

-if문과 결합하여 무한루프 안에 사용

  =>무한루프를 돌다가 특정 조건을 만족하면 프로그램을 종료하는 역할

 

+continue 문

 블록의 끝으로 이동한 후 반복문을 처음부터 다시 수행

 


배열

 

같은 자료형의 변수를 일렬로 늘어놓은 형태. 반복문과 결합하면 연속적이고 반복되는 값을 손쉽게 처리 가능


>>여러 개의 변수를 나란히 연결하는 개념

박스(변수)를 한 줄로 붙이고, 박스 이름(aa)를 지정

각각의 박스는 aa[0], aa[1]과 같이 첨자를 붙임<<

 

배열의 선언 

또한 아래와 같이 크기를 명시해주지 않고도 배열의 요소를 모두 정의할 수 있음

 

ex)

 

 

배열의 선언과 동시에 초기화하는 방법

C++에서는 변수와 마찬가지로 배열도 선언과 동시에 초기화 가능

  초기화 리스트: 다음과 같이 괄호({})를 사용하여 초깃값을 나열한 것

-> 이 경우에는 arr 변수의 크기는 개발자가 직접 명시하지 않아도 자동으로 10으로 지정 

    지정되지 않은 배열의 요소들은 모두 0으로 초기화

 

 

**하나의 배열을 다른 배열에 통째로 대입할 수 없다는 것 명심할 것

 

 

 

배열의 길이 자동 설정

위의 예제에서 int형 배열 arr의 길이는 자동으로 3으로 설정됨과 동시에 초기화 리스트에 의해 초기화

 

 

 

배열이 차지하는 메모리의 크기

 

C++에서 배열을 복사하거나 배열 요소에 특정 작업을 하고 싶을 때는 해당 배열이 차지하는 메모리의 크기를 정확히 알고 있는 것이 좋음

 

이는 다음과 같은 수식을 이용하여 구할 수 있음

 

 

ex)

 

 

<C++에서 배열이 가지는 특징>

 

1. 배열의 길이를 선언할 때에는 상수 사용 필수

2. 배열 요소의 인덱스는 항상 0부터 시작.

3. C++ 컴파일러는 배열의 길이를 전혀 신경 쓰지 X

 

 

 

다차원 배열

 

다차원 배열이란 2차원 이상의 배열을 의미하며, 배열 요소로 또 다른 배열을 가지는 배열

 

즉, 2차원 배열은 배열 요소로 1차원 배열을 가지는 배열,

3차원 배열은 배열 요소로 2차원 배열을 가지는 배열,

4차원 배열은 배열 요소로 3차원 배열을 가지는 배열.

 

2차원 배열

>다차원 배열 중 제일 많이 사용됨

 

배열의 모든 요소를 초기화하는 방식

 

ex1)

=> 실행 결과는 같음!

 

ex2)

<실행결과>