1. Console programming
//1번째 방법
#include <iostream>
int main()
{
std::cout << "Hello World!\n";\
std::cout << "Hello World1!\n"; \
return 0;
}
//2번째 방법
#include <iostream>
using namespace std;
int main()
{
cout << "Hello World!\n";\
cout << "Hello World1!\n"; \
return 0;
}
//3번째 방법
#include <iostream>
using std::cout;
int main()
{
cout << "Hello World!\n";\
cout << "Hello World1!\n"; \
return 0;
}
2. 소스> C++ 소스로 변경
//c
#include <stdio.h>
int main(void)
{
int num;
printf("숫자 하나를 입력하세요=");
scanf("%d",&num);
printf("입력받은 수는 %d입니다.\n",num);
return 0;
}
//c++
#include <iostream> // C++에서 사용하는 표준 입력과 출력 헤더 파일
using namespace std; // 표준 네임스페이스(std)를 사용하여 std:: 생략
int main()
{ // main 함수 시작
int num; // 정수형 변수 num을 선언
cout << "숫자 하나를 입력하세요: "; // 화면에 메시지 출력
cin >> num; // 키보드에서 사용자로부터 정수 입력을 받아 num에 저장
cout << "입력받은 수는 " << num << "입니다." << endl; // 입력받은 수 출력
return 0; // 프로그램 종료 및 성공 반환 코드
}
3. 우선순위와 결합성(우선순위가 같은 연산자의 결합 방향)
대부분의 연산자들은 결합성이 왼쪽에서 오른쪽으로 간다.
비트 연산자가 논리 연산자보다 우선순위가 높음
4. sizeof 연산자
5. sizeof 연산자를 사용하는 프로그래밍 언어들
1. C
2. C++
3. C#
4. Java
5. Python
6. Ruby
7. Rust
8. Swift
9. JavaScript
6. 관계 연산자
= : 대입
==: 같은냐 비교
!= : 다르냐 비교
7. 비트 시프트(bitwise shift) 연산자 : 2의n승의 처리 속도가 빠름
8. 입출력 스트림 객체 cout, cin
<<과 >>은 시프트 연산자이지만 cout과 cin를 만나면 입출력 스트림 객체로 변신
9. c언어 제어문 중에 제일 많이 사용하는 순서대로 정리
1. 조건문 (if-else)
2. 반복문 (for, while, do-while)
3. 스위치 문
4. goto 문
10. c, c++, c#, 자바 스크립트, 자바 언어의 제어문을 비교해서 표로 정리
언어 | 조건문(if-else) | 반복문 (for, while, do-while) |
스위치 문 (switch) |
기타 제어문 및 주요 특징 |
C | c if (condition) { /* 실행 코드 */ } else { /* else 블록 */ } | for, while, do-while 등의 반복문 사용 가능 | switch 문 사용 가능 | goto 문을 제공하지만 자주 사용하지 않는 것이 좋음 |
C++ | C와 동일한 구조를 사용 | C와 동일한 구조를 사용 | C와 동일한 구조를 사용 | 객체 지향 프로그래밍 및 클래스 기능을 제공 |
C# | C와 C++와 유사한 구조를 사용 | C와 C++와 유사한 구조를 사용 | C와 C++와 유사한 구조를 사용 | .NET 프레임워크를 기반으로 한 언어로, 객체 지향 및 이벤트 기반 프로그래밍을 지원 |
JavaScript | javascript if (condition) { /* 실행 코드 */ } else { /* else 블록 */ } | for, while, do-while 등의 반복문 사용 가능 | switch 문 사용 가능 | 단일 스레드, 비동기 프로그래밍을 위한 콜백 및 Promise 사용 가능 |
자바 | java if (condition) { /* 실행 코드 */ } else { /* else 블록 */ } | for, while, do-while 등의 반복문 사용 가능 | switch 문 사용 가능 | 객체 지향 및 자바 가상 머신 (JVM)을 기반으로 한 언어 |
11. if문 예제
//c
#define _CRT_SECURE_NO_WARNINGS //Visual Studio에서만 사용
#include int main(void)
{
int score;
printf("당신의 점수를 입력하고 Enter를 누르세요=");
scanf("%d", &score);
if (score < 60) printf("60점 미만이므로 재수강해야 합니다.\n"); //if문 4가지 방법으로 만들어보기
return 0;
}
//c++
#include <iostream>
using namespace std;
int main() {
int score;
cout << "당신의 점수를 입력하고 Enter를 누르세요: ";
cin >> score;
// 1번째 방법, 제일 많이 쓰는 방법
if (score < 60) {
cout << "60점 미만이므로 재수강해야 합니다." << endl;
}
// 2번째 방법: 삼항 연산자 (Conditional Operator)
(score < 60) ? cout << "60점 미만이므로 재수강해야 합니다." << endl : cout << "합격하셨습니다." << endl;
// 3번째 방법: switch 문
switch (score < 60) {
case true:
cout << "60점 미만이므로 재수강해야 합니다." << endl;
break;
case false:
cout << "합격하셨습니다." << endl;
break;
}
// 4번째 방법: 조건 연산자 (Conditional Operator)
cout << ((score < 60) ? "60점 미만이므로 재수강해야 합니다." : "합격하셨습니다.") << endl;
return 0;
}
12. if문 다음에 조건문 시작과 끝에 괄호를 반드시 해야하는 프로그래밍 언어들
1. C++
2. C#
3. Java
4. C
13. if~else문 예제 : 60 미만 판단, 양자택일
#define _CRT_SECURE_NO_WARNINGS //Visual Studio에서만 사용
#include <stdio.h>
int main(void)
{
int score;
printf("당신의 점수를 입력하고 Enter를 누르세요=");
scanf("%d", &score);
if (score < 60) {
printf("60점 미만이므로 재수강해야 합니다.\n");
}
else {
printf("60점 이상이므로 Pass입니다.\n");
}
return 0;
}
14. 다중 if~else문 : 숫자 입력받아 판단
#define _CRT_SECURE_NO_WARNINGS //Visual Studio에서만 사용
#include <stdio.h>
int main(void)
{
int value;
printf("1~3까지의 수를 입력하세요:");
scanf("%d", &value);
if (value == 1) printf("1을 입력하셨습니다.\n");
else if (value == 2) printf("2를 입력하셨습니다.\n");
else if (value == 3) printf("3을 입력하셨습니다.\n");
else printf("잘못 입력하셨습니다.\n");
return 0;
}
//1단계
#define _CRT_SECURE_NO_WARNINGS //Visual Studio에서만 사용
#include <stdio.h>
int main(void)
{
int value;
printf("1~3까지의 수를 입력하세요:");
scanf("%d", &value);
switch (value) {
if (value == 1) printf("1을 입력하셨습니다.\n");
else if (value == 2) printf("2를 입력하셨습니다.\n");
else if (value == 3) printf("3을 입력하셨습니다.\n");
else printf("잘못 입력하셨습니다.\n");
}
return 0;
}
//2단계
#define _CRT_SECURE_NO_WARNINGS //Visual Studio에서만 사용
#include <stdio.h>
int main(void)
{
int value;
printf("1~3까지의 수를 입력하세요:");
scanf("%d", &value);
switch (value) {
case 1:
case 2:
case 3:
default:
if (value == 1) printf("1을 입력하셨습니다.\n");
else if (value == 2) printf("2를 입력하셨습니다.\n");
else if (value == 3) printf("3을 입력하셨습니다.\n");
else printf("잘못 입력하셨습니다.\n");
}
return 0;
}
//3단계
#define _CRT_SECURE_NO_WARNINGS //Visual Studio에서만 사용
#include <stdio.h>
int main(void)
{
int value;
printf("1~3까지의 수를 입력하세요:");
scanf("%d", &value);
switch (value) {
case 1:
printf("1을 입력하셨습니다.\n");
case 2:
printf("2를 입력하셨습니다.\n");
case 3:
printf("3을 입력하셨습니다.\n");
default:
else printf("다시 입력하세요.\n");
}
return 0;
}
//4단계
#define _CRT_SECURE_NO_WARNINGS //Visual Studio에서만 사용
#include <stdio.h>
int main(void)
{
int value;
printf("1~3까지의 수를 입력하세요:");
scanf("%d", &value);
switch (value) {
case 1:
printf("1을 입력하셨습니다.\n");
break;
case 2:
printf("2를 입력하셨습니다. \n");
break;
case 3:
printf("3을 입력하셨습니다.\n");
break;
default:
printf("다시 입력하세요.\n");
break;
}
return 0;
}
15. switch∼case문 계산기(반복)
//c
#define _CRT_SECURE_NO_WARNINGS //Visual Studio에서만 사용
#include int main(void)
{
char op; // 연산자 저장 변수
int num1, num2; // 피연산자 저장 변수
printf("덧셈과 뺄셈만 가능합니다\n");
printf("계산하려는 수식(예:10+20)을 입력하세요:");
scanf("%d%c%d", &num1, &op, &num2); //10+20
switch (op)
{
case '+':
printf("덧셈 결과는 %d입니다.\n", num1 + num2);
break;
case '-':
printf("뺄셈 결과는 %d입니다.\n", num1 - num2);
break;
default:
printf("다시 입력하세요\n");
break;
}
return 0;
}
//c++
#include <iostream>
using namespace std;
int main() {
char op; // 연산자 저장 변수
double num1, num2; // 피연산자 저장 변수
cout << "사칙연산이 가능합니다." << endl;
cout << "수식을 입력하세요(예: 10+20): ";
cin >> num1 >> op >> num2; // 10+20
switch (op) {
case '+':
cout << "덧셈 결과는 " << num1 + num2 << "입니다." << endl;
break;
case '-':
cout << "뺄셈 결과는 " << num1 - num2 << "입니다." << endl;
break;
case '*':
cout << "곱셈 결과는 " << num1 * num2 << "입니다." << endl;
break;
case '/':
if (num2 != 0) {
cout << "나눗셈 결과는 " << num1 / num2 << "입니다." << endl;
}
else {
cout << "0으로 나눌 수 없습니다." << endl;
}
break;
default:
cout << "올바른 연산자를 선택하세요." << endl;
break;
}
return 0;
}
16. c, c++, c#, 자바 스크립트, 자바 언어의 for문 사용 예시
//c
#include <stdio.h>
int main() {
for (int i = 1; i <= 5; i++) {
printf("C 언어에서의 for 루프: %d\n", i);
}
return 0;
}
//c++
#include <iostream>
int main() {
for (int i = 1; i <= 5; i++) {
std::cout << "C++ 언어에서의 for 루프: " << i << std::endl;
}
return 0;
}
//c#
using System;
class Program {
static void Main() {
for (int i = 1; i <= 5; i++) {
Console.WriteLine("C# 언어에서의 for 루프: " + i);
}
}
}
//JavaScrip
for (let i = 1; i <= 5; i++) {
console.log("JavaScript에서의 for 루프: " + i);
}
//Java
public class Main {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
System.out.println("Java 언어에서의 for 루프: " + i);
}
}
}
17. 자신의 이름 10번 출력
#include <iostream>
int main()
{
for (int i = 0; i < 10; i++) {
std::cout << "기미애 \n";
}
return 0;
}
18. for 문으로 C++ 자릿수 정렬 스타일로 자신의 이름 10번 찍기
//1번째 방법
#include <iostream>
#include <iomanip> //setw()
int main()
{
for (int i = 1; i <= 10; i++) {
std::cout << std::setw(2) << i << " : Hello\n";
}
}
//2번째 방법
#include <iostream>
int main()
{
for (int i = 1; i <= 10; i++) {
std::cout.width(2); //다음에 출력되는 하나(i)를 두칸에 출력
std::cout << i << " : Hello\n";
}
}
19. 메뉴를 가지고 있는 프로그램의 기본 틀를 C++ 소스로 수정
//c
#define _CRT_SECURE_NO_WARNINGS
#include int main(void)
{
int menu;
do {
printf("\n메뉴 \n");
printf("1 :추가 \n");
printf("2 :삭제 \n");
printf("3 :저장 \n");
printf("원하는 작업을 선택하세요 ->");
scanf("%d", &menu);
} while (!(menu >= 1 && menu <= 3));
printf("%d를 선택했습니다.\n", menu);
return0;
}
//c++
#include <iostream>
using namespace std;
int main() {
int menu; // 사용자의 메뉴 선택을 저장할 변수를 선언합니다.
do {
// 메뉴를 표시합니다.
cout << "\n메뉴" << endl;
cout << "1: 추가" << endl;
cout << "2: 삭제" << endl;
cout << "3: 저장" << endl;
cout << "원하는 작업을 선택하세요 -> ";
// 사용자로부터 메뉴 선택을 입력 받습니다.
cin >> menu;
} while (!(menu >= 1 && menu <= 3)); // 사용자가 1, 2, 3 중 하나를 선택할 때까지 반복합니다.
// 선택한 메뉴를 출력합니다.
cout << menu << "를 선택했습니다." << endl;
return 0; // 프로그램을 정상적으로 종료합니다.
}
20. 무한루프
21. 분기문 : break 문
22. 분기문 : continue문
23. C언어 문법 정리(제어문)
24. c++ 제어문을 잘이해할 수 있는 숫자 추측 게임 소스
#include <iostream>
#include <cstdlib> // 난수 생성을 위한 헤더
#include <ctime> // 시간을 기반으로 난수 시드 생성을 위한 헤더
using namespace std;
int main() {
// 난수 발생을 위한 시드 초기화
srand(static_cast<unsigned>(time(nullptr)));
// 1에서 100 사이의 난수 생성
int secretNumber = rand() % 100 + 1;
int guess;
int attempts = 0;
cout << "1부터 100 사이의 숫자를 맞춰보세요!" << endl;
do {
cout << "추측한 숫자를 입력하세요: ";
cin >> guess;
// 입력된 숫자와 비교
if (guess < secretNumber) {
cout << "더 큰 숫자를 입력하세요." << endl;
}
else if (guess > secretNumber) {
cout << "더 작은 숫자를 입력하세요." << endl;
}
else {
cout << "축하합니다! 정답을 맞췄습니다." << endl;
break;
}
attempts++;
} while (true);
cout << "시도 횟수: " << attempts << "회" << endl;
return 0;
}
25. 리펙토링
가독성, 유지 보수성, 성능 등을 개선하는 과정을 의미합니다. 리펙토링은 기존의 코드를 개선하거나 재구성하는 작업으로, 코드를 더 이해하기 쉽게 만들고 버그를 수정하며, 소프트웨어의 전반적인 품질을 향상시킵니다.
C++ 강의 자료 참고했습니다.
'C++' 카테고리의 다른 글
[C++ 프로그래밍] 11주차 함수중첩, 디폴트 인자 (0) | 2023.11.16 |
---|---|
[C++ 프로그래밍] 10주차 const동적 메모리 할당(new, delete) (6) | 2023.11.09 |
[C++ 프로그래밍] 9주차 객체와 멤버 생성자 소멸자 this (0) | 2023.11.02 |
[C++ 프로그래밍] 7주차 멤버의 접근 속성클래스와 객체 만들기 (2) | 2023.10.19 |
[C++ 프로그래밍] 6주차 객체지향언어특징 클래스와객체 접근속성 (0) | 2023.10.12 |
[C++ 프로그래밍] 5주차 함수 기억클래스 구조체 (2) | 2023.10.05 |
[C++ 프로그래밍] 2주차 C문법 정리1 (0) | 2023.09.14 |
[C++ 프로그래밍] 1주차 C++ 개요 (2) | 2023.09.08 |