Hello, World 출력
#include <iostream> // 외부에 있는 파일을 가져오겠다는 의미
using namespace std;
// int는 함수 종료 시 어떤 타입을 반환할 건지 알려주는 부분
int main() { // 프로그램의 시작점
cout <<"Hello, World" << endl; // 화면에 텍스트를 출력하는 코드
return 0; // 정수 0을 반환하고 프로그램이 정상 종료
}
변수
입력한 값을 담을 공간이 필요해 프로그래밍 언어는 변수라는 것을 제공합니다.
타입 | 표현하는 데이터 | 설명 |
int | 정수(양수,0,음수) | 소수점 X |
float,double | 부동 소수 | 소수점 O, 둘은 정밀도 차이 |
char | 단일 문자 | 작은 따옴표로 한 문자 표현 |
bool | 논리값 | true 와 false |
string | 문자열 | 쌍 따옴표로 문자열 표현, <string> 헤더 필요 |
unsigned | 양수 | 음수 입력 불가, 양수 범위가 2배 |
계산기 구현
#include <iostream>
using namespace std;
int main()
{
// 1. 입력 받은 숫자를 저장 할 2개의 변수를 선언
int firstNum = 0;
int secondNum = 0;
cout << "첫 번째 수 입력 : ";
cin >> firstNum;
cout << "두 번째 수 입력 : ";
cin >> secondNum;
//더한 결과값 출력
cout << "더한 결과는 : " << firstNum + secondNum << endl;
return 0;
}
데이터를 여러 개 담는 배열
학생 10명의 성적을 관리하는 프로그램을 만들어야 하는 경우, 이 10개 변수는 모두 관련된 내용으로 하나로 관리하는 것이 더 효율적일 것 같습니다. 이때 사용하는 게 배열입니다.
배열의 선언
#include <iostream>
using namespace std;
int main() {
// 1. 정수형 배열 선언
int numbers[5]; // 정수를 5개 저장할 수 있는 배열
// 2. 선언과 동시에 초기화
int initializedNumbers[3] = {1, 2, 3}; // 정수 배열을 선언하고 값 초기화
// 3. 크기를 자동으로 설정
int autoSizeNumbers[] = {10, 20, 30, 40}; // 배열의 크기를 자동으로 결정 (4칸)
// 4. 실수형 배열 선언
double decimals[4]; // 실수를 4개 저장할 수 있는 배열
// 5. 문자형 배열 선언 -- 끝은 무조건 '\0'
char letters[6] = {'H', 'e', 'l', 'l', 'o', '\0'}; // 문자열을 저장하기 위한 문자 배열
// 6. 문자열 배열 (C 스타일)
char word[] = "Hello"; // 문자열을 저장하는 배열, '\0' 자동 추가
// 7. 논리형 배열
bool flags[3] = {true, false, true}; // 참/거짓을 저장하는 배열
// 8. 다차원 배열 (2차원 배열)
int matrix[2][3] = { {1, 2, 3}, {4, 5, 6} }; // 2행 3열의 배열 선언
// 9. 크기가 큰 배열
long long largeArray[1000]; // 1000개의 데이터를 저장할 수 있는 배열
// 10. 배열을 모두 0으로 초기화
int zeroArray[5] = {0}; // 첫 번째 값만 0으로 초기화하면 나머지도 0으로 초기화
return 0;
}
반복작업을 줄여주는 함수
동일한 코드를 계속 작성 하는 건 비효율적이므로 우리가 하는 작업을 정의해서 이름을 붙이고, 이 이름을 부를 때마다 그 작업을 해주는 것을 “함수”라고 합니다.
- 인자 : 해당 함수는 정수형 변수 2개를 외부값으로 부터 받는 함수입니다.
- 동작 : 인자로 받은 두 수를 더해서 반환합니다.
- 반환 : 함수의 반환 타입은 정수형입니다.
- 이름 : 함수의 이름은 add입니다.
값 전달(일반 변수)
일반적으로 변수의 복사해서 함수로 전달하므로, 함수 내부에서 값을 변경해도 원본은 영향을 받지 않습니다.
값 전달(배열)
배열의 경우 내부적으로 메모리 상 배열의 위치가 전달됩니다. 따라서 함수 내에서 값 수정 시 실제 값이 수정됩니다.
값 전달(참조자 사용)
배열 인자에 참조자를 사용하면 함수에서 인자의 값 변경 시 실제 변수의 값이 변경됩니다.
관련 내용을 정리한 적이 있습니다.
[C++] Pass by value와 Pass by reference
호출되는 함수에 매개변수가 존재한다면, 함수 호출 때의 값(argument)이 호출되는 함수의 매개변수(parameter)로 전달됩니다. 자료 전달은 값으로 전달(pass-by-value), 참조로 전달(pass-by-reference), 포인
dev0404.tistory.com
판단을 해주는 조건문
~~를 하는 경우엔? ~~를 한다면 이렇게 생각해야 하는 부분들이 많습니다. 이런 상황을 구현하기 위해 조건문을 제공합니다.
1️⃣단순 if문
2️⃣if / else 문. if가 아닌 경우는 모두 else에 해당된다고 보시면 됩니다.
3️⃣if / else if / else문 연달아서 else-if가 작성되는 경우 기존의 영역은 포함하지 않음을 알 수 있습니다.
계산기 추가 기능 구현
#include <iostream>
using namespace std;
int main() {
char op;
double num1, num2;
cout << "Enter first number: ";
cin >> num1;
cout << "Enter an operator (+, -, *, /): ";
cin >> op;
cout << "Enter second number: ";
cin >> num2;
if (op == '+') {
cout << "Result: " << num1 + num2 << endl;
}
if (op == '-') {
cout << "Result: " << num1 - num2 << endl;
}
if (op == '*') {
cout << "Result: " << num1 * num2 << endl;
}
if (op == '/') {
if (num2 == 0) {
cout << "Division by zero is not allowed." << endl;
} else {
cout << "Result: " << num1 / num2 << endl;
}
}
if (op != '+' && op != '-' && op != '*' && op != '/') {
cout << "Invalid operator." << endl;
}
return 0;
}
복합 조건(&&, ||)
음식을 고르는 경우만 해도 고기 중에서도 소고기… 소고기 중에서 한우 중에서 특정 부위를 좋아하는 경우도 많습니다. 이런 복잡한 조건들을 표현하기 위해 복합 조건이라는 것을 제공합니다.
1️⃣&&는 A&&B와 같이 사용하며 A, B에는 조건 이 옵니다. 모든 조건이 참이어야 참이 됩니다. 아래와 같이 두 개의 스위치가 모두 닫아져야 전류가 흐르는것에 비유합니다.
2️⃣||는 A||B와 같이 사용하며 A,B에는 조건이 옵니다. 둘 중 하나만 참이어도 참이 됩니다.
동일한 작업을 해주는 반복문
학생 1,000명의 성적을 차례대로 입력해야 하는 경우 하드코딩으로 하는 것은 상당히 시간이 걸립니다. 반복문은 어떻게 하면 “성적을 입력하는 행위”를 깔끔하게 반복할 수 있습니다. 반복문의 종류는 크게 for문과 while문이 있습니다
for문
초기화 과정은 한 번만 하고, 이후에 종료 조건 확인→동작→ 사후 동작 → 종료 조건 확인을 반복합니다. 반복은 종료 조건이 될 때까지 반복합니다.
while문
반복의 범위가 명확하다 기보단, 특정 조건만 체크해서 반복하는 경우가 있습니다.
'내일배움캠프 > TIL' 카테고리의 다른 글
[내일배움캠프 Day8] C++ 과제 진행 (1) | 2024.12.26 |
---|---|
[내일배움캠프 Day7] Git (0) | 2024.12.24 |
[내일배움캠프 Day5] 콜리전 수정하기 (2) | 2024.12.20 |
[내일배움캠프 Day4] 플레이어 이동하기 (2) | 2024.12.19 |
[내일배움캠프 Day3] 블루프린트를 이용한 비주얼 스크립팅 (1) | 2024.12.18 |