- 출력
cout << "출력하고 싶은 것";
cout << "\n"; //한 줄 아래로 내리기 (따옴표를 넣어야 함, 문자열 안에서만 사용 가능)
- 변수:
> 데이터를 저장할 수 있는 메모리 공간의 이름, 대입연산자(=)을 이용해 값을 초기화하거나 변경
> 변수의 종류
- int : 정수
- double : 실수
- bool : 불리언 (true/false)
- char : 문자 (문자 하나만 저장 가능) / 작은따옴표 사용
- string : 문자열 / 큰따옴표 사용
- 자료형
> 특징
- int: 양수, 음수, 0 모두 표현 가능 / -2^32 이상 2^31-1 이하 범위의 정수 담을 수 있음
- double: 소수점 포함한 실수 저장, 큰 수의 범위 표현 가능, 오차 발생 가능성 O, 과학적 표기 가능
- 과학적 표기법 예시 1) double e = 1.5e2; //1.5 * 10^2 = 150 (소수점 아래가 0이면 기본 출력에서는 보이지 X)
- 예시 2) double c = 2.3e-4; //2.3 * 10^(-4) = 0.00023
- bool: true - 1 / false - 0
- char: 하나의 문자 표현, 작은 따옴표 이용
- 형변환
> (int)나 (double)을 붙여서 정수<->실수 형 변환 가능 / 주의) int는 double의 소수점 반올림 X, 단순히 버리기만 함.
> (bool)은 0 제외 모든 값 true로 형변환, bool값을 (int)로 형변환 가능
- 연산자
>연산자의 종류
- 산술 연산자: +, -, *, /, % (int끼리의 연산에서는 결과값도 int로 나옴, int와 double형의 연산에서 결과값은 double으로 나옴)
- 비교 연산자: ==, !=, <, >, <=, >=
- 논리 연산자: &&, ||, !
- 증감 연산자: ++, -- (후위 증감 연산자와 전위 증감 연산자로 나뉨)
- 후위 증감 연산자: 변수 뒤에 붙임, 현재 값을 반환한 후 증가 또는 감소
- 전위 증감 연산자: 변수 앞에 붙임, 먼저 증가 또는 감소한 후 새로운 값 반환
- 같은 줄에서 반환값을 사용하지 않으면 두 연산자의 차이는 거의 없음
- 복합 대입 연산자: +=, -=, *=, /=, %=
- 출력
cout << fixed : 그 이후에 출력하는 소수점 아래 자리를 고정
cout.preicision(n) : 유효숫자 n자리까지 출력 (출력되지 않은 n+1번째 자리에서 반올림을 진행한 결과 출력)
> cout.precision(n)이 cout << fixed 다음에 등장하면 precision(n)은 소수점 아래 n자리까지 출력하는 모드가 됨.
- 입력
> cin 함수: 사용자에게 입력을 요청하는 역할, 입력받은 후에 다음 코드를 실행 ( cin >> a; 처럼 사용, 화살표 방향이 반대)
cin 함수는 공백, 탭, 줄바꿈을 기준으로 구분해서 각 변수마다 값을 입력받음.
- 조건문
> 특정 조건을 만족할 때만 특정 코드 실행 -> 여러 가지 상황에 따라 다르게 동작 가능
> if 문
if(조건){
실행할 동작
}
조건이 참일 때 중괄호 안의 코드가 실행됨.
> if - else 문
if(조건){
실행할 코드1
}
else{
실행할 코드2
}
조건이 true면 if 블록의 코드 실행, false면 else 블록의 코드 실행
> else - if 문
if(조건1){
조건1이 true일때 실행할 코드
}
else if(조건2){
조건1이 false이며, 조건2가 true일때 실행할 코드
}
else if(조건3){
조건1, 조건2가 모두 false이며, 조건3이 true일때 실행할 코드
}
else{
조건1, 조건2, 조건3이 모두 false일때 실행할 코드
}
모든 조건이 참이 아니라면 else 안 구문 실행
- 반복문
> for 문
구조
for(int i = 0; i < 반복횟수; i++){
실행할 코드
}
표현 방법
- int i = 0 : 초기화 (시작값, 반복문 시작될 때 한 번 실행됨) (i는 반복문 안에서만 사용 가능한 지역변수)
- i < 반복횟수 : 조건 (거짓이면 종료)
- i++ : 증감 (조건 검사 직전에 실행, 조건을 거짓으로 만들기 위한 장치)
※초기화, 조건, 증감 모두 상황에 따라 위와 다르게 사용 가능
ex) for (int i = 30; i >10; i -= 2) // i를 30부터(초기화) 10보다 클 때까지(조건) 2만큼 줄이며(증감) 반복
> while 문
반복 횟수를 정해 놓을 수는 없지만 조건이 충족되는 동안에는 계속해서 반복하도록 하는 구문
반복 조건이 언젠가 거짓이 되도록 설계해야함
구조
while(조건 검사){
실행
}
조건 검사에서 거짓이 나올 때까지 실행을 반복
- 중첩 조건문
if 문 안에 또 다른 if 문을 사용하는 것
- 1차원 배열
배열: 여러 개의 값을 순서대로 저장할 수 있는 자료형
- 동일한 타입의 데이터를 고정된 크기로 저장
- 중괄호로 정의
- 인덱스는 0부터 시작
배열 생성
//생성과 초기화를 동시에 함
int array[5] = {5, 2, 1, 10, 100};
//초기화 없이 생성 (생성된 배열에는 무작위 쓰레기값이 채워짐)
int array[5];
//일부 데이터만 초기화 (작성되지 않은 뒷부분은 0으로 채워짐)
int array[5] = {5, 2};
[] 안에 들어가는 수가 배열의 크기
배열 특정 위치의 요소 변경
int array[5] = {5, 2, 1, 10, 100};
arr[1] = arr[3] * 3;
// arr: 5, 30, 1, 10, 100
cout << array[1];
//출력 결과: 30
특정 인덱스를 통해 접근한 요소는 하나의 변수처럼 활용 가능
- 문자열
o 문자열 != 문자 (문자열은 문자들의 집합)
o 큰따옴표로 감싸서 표현
o 문자열 -> 수 변환 (문자열이 수로 변환 가능한 상태여야함.)
- stoi(문자열) : 문자열 형태인 수를 정수로 변환
- stod(문자열) : 문자열 형태인 수를 실수로 변환
문자열의 특정 문자는 인덱스 사용해 접근 가능 (인덱스는 0부터 시작)
string text = "HelloWorld";
text[5] = 'w';
cout << text; // 출력: Helloworld
문자열의 메서드
메서드: 특정 자료형이 자신만의 기능을 위해 갖고 있는 특별한 함수, 변수명.메서드명 형식으로 사용
메서드 종류
- length(): 문자열의 길이 반환 (공백, 줄바꿈, 특수문자 모두 포함)
- substr(start): 부분 문자열 (문자열의 start 인덱스부터 마지막 인덱스까지의 부분 문자열 반환)
- substr(start, length): 부분 문자열 (문자열의 start 인덱스부터 length 길이만큼의 부분 문자열 반환)
문자열과 연산자
- + : 더한 순서대로 이어 붙인 문자열 반환
- >, < : 사전순으로 앞에 오는 것이 더 작은 문자열
- ==, != : 두 문자열의 내용이 일치하는지 확인
특수 문자: 백슬래시(\)로 시작, 이스케이프 문자라고 함
- \n : 줄 바꿈
- \t : 탭
- \\ : 백슬래시 하나 출력
- \" : 큰따옴표 출력
- continue / break 문
> continue 문: 반복문의 현재 실행 과정에서 남은 부분을 생략한 채 다음 증감으로 보냄
> break 문: 반복문 즉시 종료, 반복문의 종료 조건과 관계 없이, 실행 부분에서 즉시 종료시킴
- 무한루프
조건이 항상 참이어서 종료되지 않는 루프
for 문이나 while 문에서 참이 아닌 조건을 만드는 값이 들어와도 그 반복까지는 실행 후 다음 조건 체크 때 반복문 밖으로 나옴
(+ 남은 실행 없이 바로 나가고 싶으면 break 문 사용)
- 2중 반복문
> 하나의 for 문 안에 또 다른 for 문을 중첩하여 사용하는 구조, 2차원 구조와 같은 패턴 처리에 용이
for(int i = 0; i < 반복횟수 1; i++){
for(int j = 0; j < 반복횟수 2; j++){
// 반복되는 코드
}
}
내부 반복문 모두 반복 -> 외부 반복문의 다음 반복 시작
2차원 구조에서의 외부 for 문: 행 / 내부 for 문: 열
ex) 가운데 정렬된 삼각형 출력
int n = 5;
for(int i = 1; i <= n; i++){
// 공백 출력
for(int j = 0; j < n - i; j++){
cout << " "; //2칸
}
// 별 출력
for(int j = 0; j < 2 * i - 1; j++){
cout << "* ";
}
cout << "\n";
}
//출력 결과
*
* * *
* * * * *
* * * * * * *
* * * * * * * * *
> 2중 반복문에서의 변수
외부 for 문 바깥에서 선언 - 변수값은 모든 반복 과정에서 누적됨 (전체 합계나 개수를 구할 때 사용)
외부 for 문 내부에서 선언 - 각 외부 for 문마다 독립적으로 변수값이 계산됨 (각 행의 합계, 각 그룹별 계산 시 사용)
> 2중 반복문에서의 continue, break
내부 반복문에서의 사용 - 내부 반복문의 특정 반복만 건너뛰거나, 내부 반복문만 종료 (외부 반복문에는 영향을 주지 X)
외부 반복문에서의 사용 - 외부 반복문의 특정 반복을 건너뛰거나 (내부 반복문도 건너뛸 수 O), 이중 반복문 전체 종료 (내부 반복 문에도 영향 O)
- 2차원 배열
> 배열 안에 배열이 있는 구조, 행과 열로 정의됨
2차원 배열의 기본 구조
자료형 배열명[행 크기][열 크기] = {
{a00, a01, a02, a03},
{a10, a11, a12, a13},
{a20, a21, a22, a23}
}
> 배열명[행 인덱스][열 인덱스] 형식으로 2차원 배열 안의 각 요소에 접근
> 이중 for 문으로 2차원 배열의 각 요소에 쉽게 접근 가능
for(int i = 0; i < num; i++) {
for(int j = 0; j < num; j++) {
array[i][j] // i: 행 인덱스, j: 열 인덱스 (왼 -> 오)
array[j][i] // i: 열 인덱스, j: 행 인덱스 (위 -> 아래)
}
}
순회하는 방향에 따라 인덱스 변수를 다르게 설정해야 함.
'언어' 카테고리의 다른 글
| C++ (함수, 배열, 정렬, 객체) (0) | 2026.03.25 |
|---|---|
| c++ 출력/변수/입력/연산자/조건문/반복문/배열/문자열 (0) | 2026.03.01 |