오늘은 연산자에 관련한 내용을 배웠습니다.
int num = 20;
int num2 = 20;
cout << num + num2 << endl; //더하기
cout << num - num2 << endl; //빼기
cout << num * num2 << endl; //곱하기
cout << num / num2 << endl; //나누기
cout << num % num2 << endl; //나머지연산
모듈러는 나머지연산이며 예를 들면 원래 4나누기2는 2인데, 4%2는 0이에요!
몫을 구하는게 아니라 나머지 값을 구한다고 보시면 됩니다!
//비교연산자
bool b; //true, false 참/거짓
b = num > num2; // false;
b = num <= num2; // true;
b = num == num2; // true;
참이냐 거짓이나 참이면 1(true), 거짓이면 0(false)입니다.
//증감연산자
num++; //num = num + 1; 이건 동작후 +1
++num; //num = num + 1; 이건 동작전 +1
num--;
--num;
각 변수에 +1을 더하는 개념입니다.
//논리연산자
// && and || or ! not
b = true && true; //b = true
b = true && false; //b = false
b = false && true; //b = false
b = false && false;//b = false
b = true || true; //b = true
b = true || false; //b = true
b = false || true; //b = true
b = false || false;//b = false
b = true;
b = !b; //b = false
&&는 and 라고 합니다. 하나라도 거짓일 때 전부 거짓인 구조입니다.
||은 or 이라고 합니다. 하나라도 참이면 전부 참인 구조입니다.
!은 not 이라고 합니다. b가 참일때 !b은 거짓입니다.
//비트연산
// & | ^ ~
// << >> (시프트)
비트 연산은 & - and , | - or, ^ - xor, ~ - not 이렇게 구성되어있습니다.
여기서 xor이 뭔지 모르실텐데 xor은 비교대상 a,b 가 있다면
a == 1 / b == 1 이라면 0
a == 0 / b == 1 이라면 1
a == 1 / b == 0 이라면 1
a == 0 / b == 0 이라면 0
즉 서로 같으면 false(0) 이고 서로 같으면 true(1) 입니다.
//삼항연산
//항이 3개
//a = b ? c : d
num = 10;
num2 = 20;
int max = num > num2 ? num : num2;
위 소스코드를 보시면 a = b ? c : d 이렇게 나오는데 설명하자면 a와 b가 서로 같으면 c값이고 다르면 d값이라는 뜻입니다.
( 그럼 max에는 num2의 값인 20이 들어가겠네요! )
#include<iostream>
using namespace std;
int main() {
int num = 20;
int num2 = 20;
cout << num + num2 << endl; //더하기
cout << num - num2 << endl; //빼기
cout << num * num2 << endl; //곱하기
cout << num / num2 << endl; //나누기
cout << num % num2 << endl; //나머지연산
int num3;
num3 = num + num2;
//비교연산자
bool b; //true, false 참/거짓
b = num > num2; // false;
b = num <= num2; // true;
b = num == num2; // true;
//증감연산자
num++; //num = num + 1; 이건 동작후 +1
++num; //num = num + 1; 이건 동작전 +1
num--;
--num;
b = num > num2; //b = false
b = num++ > num2; // b = false
b = num > num2; //b = true
b = num > ++num2; //b = false
//논리연산자
// && and || or ! not
b = true && true; //b = true
b = true && false; //b = false
b = false && true; //b = false
b = false && false;//b = false
b = true || true; //b = true
b = true || false; //b = true
b = false || true; //b = true
b = false || false;//b = false
b = true;
b = !b; //b = false
//비트연산
// & | ^ ~
// << >> (시프트)
//layer
//layer가 같은지 다른지 검사
// bool isTrue = layer1 == layer2; 이렇게 안함.
// layer1 layer2를 비트연산 한다. 이게 더 가볍다고함.
//삼항연산
//항이 3개
//a = b ? c : d
num = 10;
num2 = 20;
int max = num > num2 ? num : num2;
// 비교연산자의 우선순위가 삼항연산자보다 높다.
// = 연산자들에게 우선순위가 존재한다.
// 연산자들 중에 가장 우선순위가 낮은 것은? 대입연산자
return 0;
}
조건문은 크게 if / switch 두 가지 방식이 있습니다.
if (num < num2) {
//true면 실행
}
else{
//false면 실행
}
코드를 보시면 if는 if(조건문) 형태로 이뤄져 있습니다. 조건문이 true라면 실행할 것이고 false라면 if안에 있는 코드는 실행하지 않고 else에 있는 코드를 실행하게됩니다!
if (num < num2) {
//true면 실행
}
else if (num < num3) {
}
else{
//false면 실행
}
if 아래에 else if 라는 형식으로 만들게 되면 맨 위에 조건이 참이 아닐경우 그 아래 조건으로 검사를 하게 됩니다.
( 그럼 두 가지가 다 아니라면 else로 가겠죠? )
if (num<num2 && num3 > num2) {
}
연산자를 사용해서 위 두 가지 조건을 하나로도 묶을 수 있다는 사실도 알아두면 좋습니다!
switch (num) {
case 10:
cout << num << endl;
break;
case 20:
cout << num2 << endl;
break;
default:
cout << "둘다 아님." << endl;
}
switch는 num자리에 변수를 넣어주시고 변수가 case일 경우의 결과를 출력할 수 있게 해주는 조건문입니다.
사용방법은 어렵지 않으니 한번 해보시길 바랍니다!
#include<iostream>
using namespace std;
int main() {
//조건문
//삼항연산자
int num = 10;
int num2 = 20;
int num3 = 30;
if (num < num2) {
//true면 실행
}
else if (num < num3) {
}
if (num<num2 && num3 > num2) {
}
if (num < num2 < num3) {
//실행은 되는데 버그다.
//뒤에 num2 < num3는 검사하지 않음
}
switch (num) {
case 10:
cout << num << endl;
break;
case 20:
cout << num2 << endl;
break;
default:
cout << "둘다 아님." << endl;
}
return 0;
}
반복문에는 3가지 종류가 있습니다.
for / do while / while
for (int i = 1; i <= 100; i++) {
cout << i << endl;
}
for는 i가 1부터 시작해서 100까지 i가 1씩 증가한다는 의미 입니다.
for 안의 코드가 100번 반복되는 것입니다!
int i = 1;
while (i <= 100) {
cout << i << endl;
i++;
}
while은 while(조건문) 입니다. 조건문이 true(1) 일때 계속 반복된다는 의미입니다.
while안의 코드에 i++를 둬서 i값이 증가하다가 결국 100이 넘으면 종료됩니다.
do-while은 while과 동일해보이지만 조건을 마지막에 실행하기 때문에 do안의 코드는 최초 한번 이상 실행됩니다.
//do-while은 조건을 마지막에 실행하기
//때문에 최초 한번은 실행한다.
do {
cout << i << endl;
} while (i <= 100);
while뒤에 세미콜론 잊지말기!

두가지 모양을 만들어 보세요.
for (int i = 1; i <= 5; i++) {
cout << i << endl;
}
for (int i = 0; i < 5; i++) {
for (int r = 0; r < 5; r++) {
cout << "*";
}
cout << endl;
}
//for문에서 i,j,k 순서로 간다.
for (int i = 0; i < 5; i++) {
for (int j = 0; j <= i; j++) {
cout << '*';
}
cout << endl;
}
( 참고! for 사용하다가 강사님이 말씀해주신게 for문에서 컨벤션을 해야하는 부분이 이중 for문을 사용할 때 i,j,k 순서로 가면 좋다고 하셨습니다! )
#include<iostream>
using namespace std;
int main() {
//반복문
//1~100까지 출력하라.
for (int i = 1; i <= 100; i++) {
cout << i << endl;
}
int i = 1;
while (i <= 100) {
cout << i << endl;
i++;
}
//do-while은 조건을 마지막에 실행하기
//때문에 최초 한번은 실행한다.
do {
cout << i << endl;
} while (i <= 100);
for (int i = 1; i <= 5; i++) {
cout << i << endl;
}
for (int i = 0; i < 5; i++) {
for (int r = 0; r < 5; r++) {
cout << "*";
}
cout << endl;
}
//for문에서 i,j,k 순서로 간다.
for (int i = 0; i < 5; i++) {
for (int j = 0; j <= i; j++) {
cout << '*';
}
cout << endl;
}
return 0;
}