자, 문제를 내 봅시다...
3 + 9 는 얼마일까요?
우선, 정답은 12이고 (틀리면 뭐... 틀릴.. 수 있죠..)
그렇다면 이 문제는 어떤가요?
34 + | 32 X { 51 - 9 ( 37 X 3^2 / 3 ) - 539 } | 는 얼마일까요?
저는 정답을 모릅니다.
이처럼 더하기 [+], 빼기 [-], 곱하기 [*], 나누기 [/] 등을 "연산자" 라고 합니다.
그럼, C++ 에서 연산자는 무엇이 있을까~요?
기호 | 이름 |
+ | 더하기 |
- | 빼기 |
* | 곱셈 |
/ | 나눗셈 |
% | 나머지 |
++ | 증가 연산자 |
-- | 감소 연산자 |
>, < | ~초과, 미만 |
>=, =< | ~이상, 이하 |
== | 같다 (등호) |
!= | 같지 않다 |
우선, 기본적으로 알아야 하는 연산자의 종류에는 이런 것들이 있습니다.
이 외에도 비트 연산자, 쉬프트 연산자 등 다양한 연산자들이 있지만, 기본적인 것들만 알려 드렸습니다.
더 다양한 연산자들을 알고 싶으시다면,
참고하세요~
👉 [C++} C++ 프로그래밍 연산자 한눈에 보기
자, 그러면 이 연산자들을 한번씩 다 써 보도록 하겠습니다!
더하기, 빼기, 곱하기 나누기 - 사칙연산 연산자
사실 저번 강의에서 다음 강의는 "반복문" 이라고 스포를 했건만...
연산자를 먼저 다뤄야 할 것 같아서 이렇게 연산자 강의를 쓰게 되었습니다.
저번 포스팅에서 설명했던 입,출력을 이용해서 사용자가 입력한 두 값을
사칙연산 하는 프로그램을 만들어 보도록 하겠습니다~
우선, 새 소스를 만들고, 기본 형식을 적어 주었습니다.
혹시라도 이걸 만드는 법을 모르신다면
변수의 이름부터 먼저 정해 주도록 합시다.
사용자가 처음에 입력한 값을 NUM_1, 두 번째 입력한 값을 NUM_2 라고 선언할게요.
그리고 결과는 Res 라고 선언하도록 합시다. 사실 변수 이름은 만드는 사람 자유니 a, b, c 로 하셔도 됩니다.
입력한 값이 "실수" 일 수 있으니, float 형 자료형을 사용할게요.
잠깐! 변수와 자료형이 궁금하다면?
👉 02. C++ 자료형과 변수 / 표준 입, 출력 / cin, cout / 코딩 강의 블로그
자, 이렇게 변수를 선언하고, 값을 대입하는 코드까지 작성했습니다.
여기까진 저번 포스팅에 모든 내용이 있으니 잘 모르겠다면 저번 포스팅을 참고하세요.
우선 더하기부터 해 봅시다.
라인별 해석입니다.
5~10. 실수형 변수 NUM_1, NUM_2, RES 를 선언하고, 사용자가 입력한 값을 대입
12. RES 값을 NUM_1 + NUM_2 로 대입함
13. NUM_1 + NUM_2 = RES 를 출력함 (여기서 NUM_1, NUM_2, RES 는 각각 실수형 변수)
실행을 해 볼까요?
음..실패했다고 뜨네요.
사실 이게 정상입니다. 한 프로젝트 안에 소스 파일을 2개를 만들었기 때문에,
2개의 파일 모두 main 함수를 사용했죠. 그게 문제가 되는 겁니다.
main 함수의 이름을 파일마다 다 다르게 설정해야 합니다. main_cincout 이렇게 말이죠.
그래도 저는 계속 오류가 떠서 봤더니...파일이 꼬인 줄 알았습니다만,
그렇게 쉽게 해결될 문제가 아니더라고요.
그래서 다시 만들었습니다. 이번엔 혹시나 오류날까 싶어 return 0; 도 마지막 문장에 써 줬고요.
실행을 다시 해 봤더니 다행히도 잘 작동되었습니다.
빼기와 곱셈도 다 같은 방식이죠.
이번엔 나눗셈과 나머지 연산을 해 보도록 합시다.
나눗셈은 자료형에 따라 결과가 달라집니다.
자료형이 "정수형" 을 나눗셈 하면 그 나눗셈의 몫만 출력됩니다.
예를 들어, int a, b = 8, 5 로 두면 a / b 의 값이 1이 됩니다.
반면에 "실수형" 을 나눗셈 하면 나눗셈이 소수점 아래 자리까지 모두 되어져서 출력됩니다.
예를 들어, float a, b = 1, 10 으로 두면 a / b 의 값이 0.1이 됩니다.
연산자 [%] 는 나눗셈의 나머지를 도출하는 연산자이기 때문에,
나머지가 존재하기 위해 정수형 자료형만 사용 가능합니다.
참고로 C++ 에서 "곱하기"는 [ * ], "나누기" 는 [ / ], "나머지 연산" 은 [ % ] 를 사용합니다.
#include<iostream>
using namespace std;
int main()
{
//사칙연산 연산자 - 입력 값 계산하기
//나눗셈, 나머지 연산
int NUM_1, NUM_2, Q, R; //정수형 변수 NUM_1, NUM_2, Q, R 을 선언
cout << "첫 번째 값을 입력하세요 >> ";
cin >> NUM_1;
cout << "두 번째 값을 입력하세요 >> ";
cin >> NUM_2;
Q = NUM_1 / NUM_2; //Q 의 값을 NUM_1 / NUM_2 의 몫으로 대입
R = NUM_1 % NUM_2; //R 의 값을 NUM_1 / NUM_2 의 나머지로 대입
cout << endl << NUM_1 << " 나누기 " << NUM_2 << " 의 몫은 " << Q << ", 나머지는" << R << " 입니다." << endl; //연산 결과 (몫과 나머지) 를 출력
return 0;
}
제가 코드에 주석까지 다 달아 놨으니, 참고 해 보세요~
작동이 잘 됩니다.
++ (증가), -- (감소) 연산자
자, 이제 증가, 감소 연산자에 대해 알아봅시다.
이 증가 연산자의 ++ 때문에 C++ 이 되었다는 썰을 어디서 들은 적이 있습니다만.
확실히는 모릅니다.
증가, 감소 연산자는 말 그대로 "증가" 와 "감소" 를 나타냅니다.
예시를 하나 들어 볼게요.
26. 정수형 변수 a = 1로 초기화
27. a값을 출력
28.. a++
29. a값을 출력
30. ++a
31. a값을 출력
여기서 a++과 ++a의 차이는 그저 "순서" 일 뿐입니다. 이 증가 / 감소 연산자가
독립적으로 사용되기도 하지만, 수식 안에서 사용될 경우도 있기 때문에 둘의 차이가 있습니다.
a++ 은 "후위 연산자"로 앞에 있는 계산이 끝나고 나서 a 에 ++ 을 해 줍니다. (여기서 ++ 은 +1 과 같음)
++a 는 "전위 연산자"로 a에 ++을 하고 나머지를 시행합니다.
앞의 저 코드를 실행하면
1, 2, 3이 순서대로 출력됩니다.
감소 연산자인 [ -- ] 의 경우도 동일합니다.
우선, 이번 강의는 여기까지입니다 :)
오늘 실행한 모든 코드 파일은 깃허브에 올려 둘 테니 다운받아 사용해도 됩니다.
파일에 주석 처리까지 다 해 놓았으니 차근차근 읽어 보세요.
참고로 코드의 중복 실행 방지를 위해 위쪽 코드는 모두 주석 처리를 해 두었으니
라인 맨 앞의 슬래시 2개 [//] 를 지우고 사용하세요.
👉 깃허브 바로가기
만약 깃허브 사용법을 모른다면..?
걱정 마세요. 다음 강의로 깃허브 사용법을 준비 중이랍니다.
그래도 간단한 사용법은 밑에 "더보기" 에 써 둘게요.
1. 👉 깃허브 바로가기 를 통해 제 깃허브 프로필에 접속하세요.
2. 아래쪽에 스크롤 해 보면, C_edu 라는 레포지토리가 있습니다. 클릭해서 들어가세요~
3. 레포지토리에 들어가면, 이렇게 오늘 강의 내용 파일이 담겨 있답니다.
블로그 글 제목 앞의 숫자가 파일 앞에 붙어 있으니 참고하세요.
4. 코드를 클릭하면, 이렇게 코드를 볼 수 있답니다.
5. 도움이 되었다면, 깃허브에 있는 "별" 을 눌러주세요 ㅎㅎ
선택사항입니다.
p.s) 혹시나 깃허브 사용자분들 중에 제 깃허브를 보고 오타나 오류, 버그를 발견하셨으면 커밋 해 주세요.
확인 후 합칠 예정입니다!
끄으읕~
'egg.code > C++' 카테고리의 다른 글
02. C++ 자료형과 변수 / 표준 입, 출력 / cin, cout / 코딩 강의 블로그 (4) | 2022.01.19 |
---|---|
01. 코딩 시작하기 / C++ / Microsoft Visual Studio 설치 및 설정 (4) | 2022.01.18 |