조건문
주어진 조건식의 결과에 따라 별도의 명령을 수행하도록 제어하는 명령문
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)
<실행결과>
'c++' 카테고리의 다른 글
6주차-객체 배열, 동적 메모리 할당, 객체 배열 동적 생성, this 포인터 (0) | 2020.06.08 |
---|---|
5주차 - 접근 지정자, 인라인 함수, 헤더, 객체 포인터 (0) | 2020.05.31 |
3주차-포인터 (0) | 2020.04.03 |
C++ 1단원, 2단원 + 입출력 + 연산자 (0) | 2020.03.25 |