반응형
오늘 한 일
- C++ 기초 문법 개론
- 반복문 (while문)
- while (조건): 조건 true면 false가 될 때 까지 반복
- [실습] CheckPoint 1_1
CheckPoint1을 입력과 반복으로 대체 유져 입력을 받는다. > 숫자를 입력하세요(8자리 이하): 숫자의 자리수를 출력 결과 예시: 숫자를 입력하세요(8자리 이하): 123 3 2 1 입력 예외처리 하지 않음!
#include <iostream> void main() { int inputNum = 0; int result = 0; int cacheNum = 0; std::cout << "숫자를 입력하세요(8자리 이하) :"; std::cin >> inputNum; std::cout << std::endl; cacheNum = inputNum; while (cacheNum > 0) { result = cacheNum % 10; std::cout << result << std::endl; cacheNum = cacheNum / 10; } std::cout << "시작값: " << inputNum << std::endl; }
- [실습] CheckPoint 3
10~51번의 수를 4,5,5, 4,5,5, 4,5,5의 순서로 나누어서 출력 결과값: 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
#include <iostream> void main() { int newLineNum = 13; int group = 1; for (int i = 10; i <= 51; i++) { std::cout << i << " "; if (i >= newLineNum) { if (group % 3 == 0) { newLineNum += 4; } else { newLineNum += 5; } std::cout << std::endl; ++group; } } }
- [실습] CheckPoint 4(구구단 출력)
#include <iostream> void main() { for (int i = 2; i <= 9; i++) { for (int j = 1; j <= 9; j++) { std::cout << i << "X" << j << "=" << i * j << " "; } std::cout << std::endl; } }
#include <iostream> void main() { for (int j = 1; j <= 9; j++) { for (int i = 2; i <= 9; i++) { std::cout << i << "X" << j << "=" << i * j << " "; } std::cout << std::endl; } }
- [실습] CheckPoint 5(다이아몬드 패턴)
#include <iostream> void main() { int countStar = 7; int countBlank = 0; // Top { for (int i = 0; i < 4; i++) { for (int j = 0; j < countBlank; j++) { std::cout << " "; } for (int k = 0; k < countStar; k++) { std::cout << "*"; } countStar -= 2; ++countBlank; std::cout << std::endl; } } //Bottom { countStar = 3; countBlank = 2; for (int i = 0; i < 3; i++) { for (int j = 0; j < countBlank; j++) { std::cout << " "; } for (int k = 0; k < countStar; k++) { std::cout << "*"; } countStar += 2; --countBlank; std::cout << std::endl; } } }
- 반복문 제어(break, continue)
- 반복문 중간에 특정 조건이 달성 되었을 때 반복을 끝내거나(break) 현재 반복을 건너 뛸(continue) 수 있다.
#include <iostream> void main() { for (int i = 1; i <= 10; i++) { if (i == 2) { continue; // 숫자 2는 출력하지 않기 } if (i > 8) { break; // 8까지만 출력하고 9, 10은 출력하지 않기 } std::cout << i << std::endl; } }
- 반복문 중간에 특정 조건이 달성 되었을 때 반복을 끝내거나(break) 현재 반복을 건너 뛸(continue) 수 있다.
- 배열
#include <iostream> void main() { // 1차원 배열 { int arrNums[3] = { 0, 1, 2 }; int arrNum2[3] = { 0, }; // arrNum2[3]={0, 0, 0} int arrNum3[] = { 0, 1, 2, 3 }; // arrNum3[4]={0, 1, 2, 3} int arrNum4[5]; // arrNum4[5] = {쓰레기값(=임의의 값) 5개} for (int i = 0; i < 3; i++) { std::cout << "i: " << arrNums[i] << " " << std::endl; } } // 2차원 배열 { int arrNum5[3][2] = { {1, 2}, {3, 4}, {5, 6} }; for (int i = 0; i < 3; i++) { for (int j = 0; j < 2; j++) { std::cout << "i: " << i << ", j: " << j << " == " << arrNum5[i][j] << std::endl; } } } }
- [실습] CheckPoint 6
구구단 몇단을 보여 드릴까요(2 ~ 9)0번입력하면 나가기: 2 결과값: 2 * 1= 2 2 * 2= 4 2 * 3= 6 2 * 4= 9 2 * 9= 18 결과값을 캐싱해서 처리. 1차원 배열로 캐싱(미리 저장)하기(72개의 결과값(구구단))
#include <iostream> void main() { int arrResults[72] = { 0, }; int index = 0; int result = 0; int inputNum = 0; // 구구단 생성 { for (int i = 2; i < 10; i++) { for (int j = 1; j < 10; j++) { result = i * j; arrResults[index] = result; ++index; } } } // 사용자 입력 { while (true) { std::cout << "구구단 몇 단을 보여드릴까요(2~9) 0번 입력하면 나가기: "; std::cin >> inputNum; std::cout << std::endl; if (inputNum == 0) { break; } else if (inputNum < 2 || inputNum > 9) { std::cout << "2~9 사이를 입력하세요"; std::cout << std::endl; } else { for (int i = 0; i < 9; i++) { int indexResult = ((inputNum - 2) * 9) + i; int cacheResult = arrResults[indexResult]; std::cout << inputNum << "X" << i + 1 << "=" << cacheResult << " "; } std::cout << std::endl; break; } } } }
- [실습] CheckPoint 7
CheckPoint6에 결과값 캐싱을 2차원 배열로 변경 후 처리 int arrResults[8][9];
#include <iostream> void main() { int arrResults[8][9]; int index = 0; int result = 0; int inputNum = 0; // 구구단 생성 { for (int i = 0; i < 8; i++) { for (int j = 0; j < 9; j++) { result = (i+2) * (j+1); arrResults[i][j] = result; ++index; } } } // 사용자 입력 { while (true) { std::cout << "구구단 몇 단을 보여드릴까요(2~9) 0번 입력하면 나가기: "; std::cin >> inputNum; std::cout << std::endl; if (inputNum == 0) { break; } else if (inputNum < 2 || inputNum > 9) { std::cout << "2~9 사이를 입력하세요"; std::cout << std::endl; } else { for (int i = 0; i < 9; i++) { int cacheResult = arrResults[inputNum-2][i]; std::cout << inputNum << "X" << i + 1 << "=" << cacheResult << " "; } std::cout << std::endl; break; } } } }
- 반복문 (while문)
어려웠던 점
- 수업 중에 바로바로 하기에는 아직 시간이 부족했다. 집에서 복습할 때는 괜찮았다.
배운 점
- for에서 사용하는 i는 왠만하면 0부터 시작하는게 일관적인 판단을 하는데 도움이 되는 것 같다.
해야 할 일
1.
반응형
'Unreal Engine' 카테고리의 다른 글
| UE5 강의 11 - C++ 기초 문법 개론 1 [2026.03.14.] (0) | 2026.03.28 |
|---|---|
| UE5 강의 7 - UMG, 카메라 [2026.02.07.] (0) | 2026.03.24 |
| UE5 강의 6 - UMG [2026.01.31.] (0) | 2026.03.24 |
| UE5 강의 5 - GUI(UMG) [2026.01.24.] (0) | 2026.03.15 |
| UE5 강의 4 - 오브젝트(액터)간 통신 방법 4가지 [2026.01.17.] (0) | 2026.03.15 |