Notice
Recent Posts
Recent Comments
Link
Yejom's Dev Log
[C++ 입문] 2. loop, function, array 본문
- 반복문 (loop)
- for 문
// fOR 문
int main() {
std::cout << "(1) 5단 출력\n----5단----\n";
for (int i = 1; i < 10; i++) {
std::cout << "5 * " << i << " = " << 5 * i << std::endl;
}
std::cout << "(2) 1 ~ 9단 출력\n";
for (int j = 1; j < 10; j++) {
std::cout << "----" << j << "단----\n";
for (int k = 1; k < 10; k++) {
std::cout << j << " * " << k << " = " << j * k << std::endl;
} } }
- while 문
// while 문
int main() {
int num = 10000;
int sum = 0;
cout << "사용자가 입력한 숫자 더하기\n";
while (num != 0) {
cout << "\n숫자를 입력하세요 (0 : exit) : ";
cin >> num;
sum += num;
}
cout << "\n사용자가 입력한 수의 합은 : " << sum << endl;
return 0;
}
※ 종료 조건을 만족시키지 않으면 무한 루프에 빠질 위험이 있음.
- do - while 문
// do-while 문
// 0, 1 출력
int main() {
int x = 0;
do {
cout << x << endl;
x++;
} while (x == 1);
}
// 0 만 출력
int main() {
int x = 0;
do {
cout << x << endl;
x++;
} while (x == 2);
}
do-while 루프의 문(statement)은 항상 적어도 한번 실행.
조건이 true이면 실행 경로가 do-while 루프의 맨 위로 돌아가서 다시 실행.
- 별(*) 찍기 예제
// 1)
int main() {
int rep;
int j = 0;
cout << "Input : ";
cin >> rep;
cout << endl << "Output : " << endl;
string star = "";
for (int i = 1; i <= rep; i++) {
star += "*";
cout << star << endl;
}
return 0;
}
// 2)
int main() {
int rep;
int j = 0;
cout << "Input : ";
cin >> rep;
cout << endl << "Output : " << endl;
for (int i = 1; i <= rep; i++) {
while (j != i) {
cout << "*";
j++;
}
j = 0;
cout << endl;
}
return 0;
}
- 함수 (function)
- 이름 작성과 기능 분배가 중요함.
ex) IntSum 이랑 IntSumAndPrint 의 기능은 달라야 함.
- 리턴하는 값에 따라 함수의 자료형 결정
#include <iostream>
using namespace std;
int GetTen()
{
//GetFive(); //깊이 두 단계 들어가진 것.
return 10;
}
int IntSum(int n1, int n2)
{
return n1 + n2;
}
void PrintSomething(string message)
{
cout << message << endl;
}
int main()
{
// cin >> num1 >> num2;
// 두 개 동시에 입력받을 수 있음.
int ten = GetTen(); // ten = 10;
int result = IntSum(4, 7); // 4 + 7
// int result = PrintHi(); // 리턴되는 값이 없어서 가져올 것도 없다.
PrintSomething("Neuron");
}
- 배열 (array)
// 배열의 선언
string fruit[3];
// 배열의 초기화
fruit[0] = "apple";
fruit[1] = "banana";
fruit[2] = "orange";
// 배열의 선언 & 초기화
string fruit[] = { "apple", "banana", "orange" };
void main()
{ int intArray[5] = { 6, 7, 8, 9, 10 };
int arraySize = sizeof(intArray) / sizeof(intArray[0]);
// # 1) for-each: 배열의 모든 요소를 처음부터 끝까지 탐색
for (int num : intArray) // 인덱스 0번부터, 1씩 증가
{
cout << num << endl;
}
// # 2
for (int i = 0; i < arraySize; i++)
{
cout << intArray[i] << endl;
}
}
/* 1)과 동일하게 작동함.
int target_min = 2; // 인덱스 번호 최소값
int target_max = 4; // 인덱스 번호 최대값
int loop_count = 0;
if (loop_count > target_min && loop_count < target_max)
{
cout << num << endl;
loop_count++;
}*/
☆ for 문에서 sizeof(array) / sizeof(array[0]) 사용하는 이유?
: 배열의 갯수를 정해두지 않고 선언하는 경우에 유용함.
int col = sizeof(pyo[0]) / sizeof(pyo[0][0]); // 2차원 배열 가로크기 구하기, 가로 한 줄의 크기를 요소의 크기로 나눠줌
int row = sizeof(pyo) / sizeof(pyo[0]); // 2차원 배열 세로크기 구하기, 배열이 차지하는 전체 공간을 가로 한 줄의 크기로 나눠줌
- 실습
https://github.com/YejeongKang/240424/tree/main/240424
240424/240424 at main · YejeongKang/240424
Contribute to YejeongKang/240424 development by creating an account on GitHub.
github.com
- # define
// 전처리기에서 작동됨.
// 소스코드 이전에 실행되는 것들
#include <iostream>
#include <string>
#define ROW_SIZE 5
#define COL_SIZE 4
// 소스코드의 ROW_SIZE와 COL_SIZE 변수를 모두 정의해둔 숫자로 바꿔줌.
// 편리하고, 변수가 상징적인 의미를 갖게 함.
- 코드 설계
- 데이터 정의
- 입력단
- 입력 판별
- 입력 처리
이렇게 설계, 작성해서 남이 봐도 이해할 수 있는 코드를 작성해주는 것이 좋음.
※ 개발을 하는 중에는 F5(디버그 모드)로 확인하는 것이 좋다.

- github에 코드 올렸는데 한글이 깨진다면? ╚(•⌂•)╝

'Smart Factory Bootcamp' 카테고리의 다른 글
[C++ 입문] 4. vector, execution time (0) | 2024.04.26 |
---|---|
[C++ 입문] 3. pointer, dynamic array (0) | 2024.04.26 |
[C++ 입문] 1. variable, operator, condition (0) | 2024.04.24 |
[GitHub] Remote, Clone, Push (0) | 2024.04.24 |
[Git] 초기 세팅, 레포지토리, 브랜치, Git Bash (0) | 2024.04.23 |