C++ 기초 (2)

임철현·2023년 9월 21일
post-thumbnail

1. using namespace 사용하기


2번째 코드 처럼 std::cout으로 해도괜찮다.

2. C와 C++

#include <stdio.h>
int main(void)
{
	int num;
	printf("숫자 하나를 입력하세요=");
	scanf("%d",&num);
	printf("입력받은 수는 %d입니다.\n",num);
	return 0;
}

↓↓↓↓↓↓↓↓↓↓↓↓↓↓ ( C -> C++ ) ↓↓↓↓↓↓↓↓↓↓↓↓↓

using namespace std;
int main()
{
    int num;
    cout << "숫자 하나를 입력하세요=";
    cin >> num;
    cout << "입력받은 수는 " << num << "입니다." << endl;
}

3. 연산자의 우선순위와 결합성

● 비트연산자는 논리 연산자보다 우선순위가 높다.
● 대입과 밀접한 관계가 있는 연산자나 자료형,참조 연산자는 결합성 방향이 반대이다.

4. 관계 연산자

5. 비트 시프트 연산자

6. cout, cin

cout, cin과 함께쓰는 <<, >> 는 비트 시프트 연산자가 아니라 화면으로 출력하고 키보드로부터 데이터를 입력 받는 객체로 변한다

7. C언어에서 가장 많이 사용되는 제어문

8. if 문과 if ~ else 문

if (score < 60) {
           printf("60점 미만이므로 재수강해야 합니다.\n")   
   }
#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;
}

가장 보편적인 방법이다.

9. switch문

#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;
}

10. switch문과 C++

#include <iostream>
int main() {
    char op;  // 연산자 저장 변수
    int num1, num2;  // 피연산자 저장 변수
    std::cout << "덧셈, 뺄셈, 곱셈, 나눗셈이 가능합니다" << std::endl;
    std::cout << "계산하려는 수식(예: 10+20)을 입력하세요:";
    std::cin >> num1 >> op >> num2;  // 10+20
    switch (op) {
        case '+':
            std::cout << "덧셈 결과는 " << num1 + num2 << "입니다." << std::endl;
            break;
        case '-':
            std::cout << "뺄셈 결과는 " << num1 - num2 << "입니다." << std::endl;
            break;
        case '*':
            std::cout << "곱셈 결과는 " << num1 * num2 << "입니다." << std::endl;
            break;
        case '/':
            std::cout << "나눗셈 결과는 " << (double)num1 / num2 
                      << "입니다." << std::endl;
            break;
        default:
            std::cout << "지원하지 않는 연산자입니다." << std::endl;
            break;
    }
    return 0;
}

두개의 값을 받아서 사칙연산을 시키는 코드이다.

11. for 문

#include <iostream>
int main()
{
	for (int a = 0; a < 10; a++) {
		std::cout << a+1 <<("소프트 ")<< std::endl;
	}
	return 0;
}

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
( sewt를 사용하여 2칸 띄어서 출력할수있다!)

#include <iostream>
#include <iomanip> //setw()
int main()
{
	for (int a = 1; a <= 10; a++) {
		std::cout << std::setw(2)<< a <<(" : 소프트 ")<< std::endl;
	}
	return 0;
}

12. 무한 루프

#include

#include <iostream>
int main() {
    char op;
    int num1, num2;

    for (;;) {
        std::cout << "\n덧셈과 뺄셈만 가능합니다" << std::endl;
        std::cout << "끝내려면 0+0을 입력하세요\n";
        std::cout << "계산하려는 수식(예:10+20)을 입력하세요:";

        std::cin >> num1 >> op >> num2;

        if (num1 == 0 && num2 == 0) break;

        switch (op) {
        case '+':
            std::cout << "덧셈 결과는 " << num1 + num2 << "입니다." << std::endl;
            break;
        case '-':
            std::cout << "뺄셈 결과는 " << num1 - num2 << "입니다." << std::endl;
            break;
        default:
            std::cout << "다시 입력하세요" << std::endl;
            break;
        }
    }

    return 0;
}

무한 반복되는 코드이며 0과 0을 입력했을때 무한 for문을 탈출하여 종료되는 프로그램이다.

13. do while문

#include <iostream>
int main(void) {
	int menu;
	do {
		std::cout << "\n메뉴\n";
		std::cout << "1:추가\n";
		std::cout << "2:삭제\n";
		std::cout << "3:저장\n";
		std::cout << "4:이동\n";
		std::cout << "원하는 작업을 선택하세요->";
		std::cin >> menu;
	} while (!(menu >= 1 && menu <= 4));
	std::cout << menu << "를 선택했습니다.\n";
	return 0;
}    

메뉴와 다른 번호를 입력시 무한 반복하는 do while 활용문이다.

14. 무한 루프를 하는 3가지 방법

15. break문

16. continue문

#include <stdio.h>
int main(void)
{
	int n;
	for (n = 1; n <= 100; n++)
	{
		if (n % 2 == 0) continue;
		//코드 아래로 내려가지않고 조건식 검사하는곳으로 다시올라간다
		printf("%3d ", n);
	}
	return 0;
}

홀수들만 출려되는 코드이다.

17. 가위바위보게임

#include <iostream>
#include <cstdlib> // rand() 함수를 사용하기 위한 헤더
#include <ctime>   // 시드(seed) 설정을 위한 헤더

int main() {
    // rand() 함수를 초기화하기 위해 현재 시간을 사용합니다.
    std::srand(static_cast<unsigned int>(std::time(nullptr)));

    int userChoice;
    int computerChoice;

    while (true) { // 무한 루프
        std::cout << "가위(0), 바위(1), 보(2) 중 하나를 선택하세요 (끝내려면 3): ";
        std::cin >> userChoice;

        if (userChoice == 3) {
            std::cout << "게임을 종료합니다." << std::endl;
            break; // 3을 입력하면 게임 종료
        }

        if (userChoice < 0 || userChoice > 2) {
            std::cout << "잘못된 선택입니다. 0, 1, 2 중에서 선택하세요." << std::endl;
            continue; // 잘못된 선택은 다시 입력 받음
        }

        // 컴퓨터가 무작위로 선택한 가위(0), 바위(1), 보(2)
        computerChoice = std::rand() % 3;

        std::cout << "컴퓨터 선택: " << computerChoice << std::endl;

        // 가위바위보 승부 결정
        if (userChoice == computerChoice) {
            std::cout << "무승부!" << std::endl;
        }
        else if ((userChoice == 0 && computerChoice == 2) ||
            (userChoice == 1 && computerChoice == 0) ||
            (userChoice == 2 && computerChoice == 1)) {
            std::cout << "승리!" << std::endl;
        }
        else {
            std::cout << "패배!" << std::endl;
        }
    }

    return 0;
}

(출처: 한성현교수님 C++ 교육 ppt)

profile
임철현입니다

0개의 댓글