코딩 공부/Javascript

[Javascript 기초] 기본, 비교, 논리 연산자, 조건문- 가온 코딩

Cosmic-dust 2022. 8. 2. 13:20
728x90
반응형

기본, 비교, 논리 연산자, 조건문

 

목차

1. 기본 연산자

(1) %의 쓰임

(2) 거듭제곱

(3) 연산자의 우선순위

(4) 연산자 줄여서 쓰기

(5) 증가 연산자, 감소 연산자

 

2. 비교 연산자, 조건문(< > <= >= == !=, if, else)

(1) 비교 연산자

(2) 동등 연산자

(3) 조건문(if, else)

 

3. 논리 연산자 (AND, OR, NOT)

(1) ||(OR)

(2) &&(AND)

(3) !(NOT)

(4) 우선순위

 

 

 

1. 연산자(Operators)

종류는 다섯 가지이다

+, -, *, /, %

 

(1) %의 쓰임

우리가 흔히 +, -, *, /는 보니 알겠는데, %(나머지)는 어디에 쓸까?

 

예시 1)

홀짝 구분
홀수: X % 2 = 1
짝수: Y % 2 = 0

 

예시 2)

어떤 값이 들어와도 5 미만 값 반환.
X % 5 = 0-4 사이의 값만 반환

 

(2) 거듭제곱

*를 **붙이면 거듭제곱이 된다.

const num = 2 ** 3; // 2의 3승
console.log(num); // 8

 

(3) 연산자의 우선순위


* /     >      + -

*, /가 +, -보다 우선순위에 적용된다.

 

(4) 연산자 줄여서 쓰기

let num1 = 10;
// num1 = num1 + 5;
num1 *= 5; // 50;
num1 /= 5; // 2;
num1 %= 5; // 0;
num1 += 5; // 15;
num1 -= 5; // 5;

 

(5) 증가 연산자, 감소 연산자

let num2 = 10;
num2++; // 11
num2--; // 9

// 증감연산자를 앞에 쓰느냐, 뒤에쓰느냐에 따라 차이가 있다.
let result = num2++;    // 10 (result = num2)++
let result1 = ++num2; // 11 result1 = (++num2)

 

 

2. 비교 연산자, 조건문( < > <= >= == != )

 

(1) 비교 연산자

a = 3 // a에 3을 넣는다.

a == 3 // a는 3과 같다.

a != 3 // a는 3과 다르다.

console.log(10>5);  //true
console.log(10 == 5);   //false 동등 연산자
console.log(10 != 5);   //true

 

(2) 동등 연산자

// 동등 연산자
const a = 1;
const b = "1";
console.log(a == b); // true 숫자형 문자형 비교했는데 같다고 나온다. (타입 비교 X)
console.log(a === b); // 일치연산자. false 다르다. (타입 비교 O)

 

(3) 조건문(if, else)

// 조건문
// 1. 19살 초과, 이하 구분
const age1 = 30;
if(age1 > 19){
    console.log('환영합니다.'); // 출력
}
if(age1 <= 19){
    console.log('안녕히가세요.');
}

// 2. else 활용(if문이 false일 때 실행)
const age2 = 10;
if(age2 > 19) {
    console.log('환영합니다.'); 
} else {
    console.log('안녕히가세요.');   //출력
}

// 3. 추가요구사항: 정확히 19살이면 수능 잘보세요 라는 문구를 보여주세요
// else if 사용(if문이 flase일 때 거쳐가고, else if가 false이면 else 실행)
const age3 = 19;
if(age3 > 19) {
    console.log('환영합니다.'); 
} else if(age3 === 19) {
    console.log('수능 잘보세요.'); //출력
} else {
    console.log('안녕히가세요.');  
}

 

 

 

3. 논리 연산자


||(OR) &&(AND) !(NOT)


(1) ||(OR)


여러개 중 하나라도 true 면 true
즉, 모든 값이 false일 때 false 반환
a || b // a 나 b 중 true 가 있으면 true

 

//OR
//이름이 TOM 이거나, 성인이면 통과
const name = "Mike";
const age = 30;

if(name === "TOM" || age > 19){
    console.log("통과");    // 출력. 이름은 TOM이 아니지만 성인이어서 통과됨
}   else {
    console.log("불통과");
}



(2) &&(AND)


모든값이 true면 true
즉, 하나라도 false면 false 반환
a && b // a 와 b 둘 다 true 이면 true

 

//AND
//이름이 Mike이고, 성인이면 통과
if(name === "Mike" && age > 19){
    console.log("통과");    // 출력
} else {
    console.log("불통과");
}



(3) !(NOT)


true면 false
false면 true
!a // a가 flase이면 true

 

//NOT
//나이를 입력받아 성인이 아니면 돌아가라고...
const age2 = prompt("나이가...?");
const isAdult = age2 > 19;

if(!isAdult){   // if(!(age2>19)){} 가능
    console.log("돌아가...")
}

 

예) 스티브 잡스는 한국인 이거나OR, 남자이다 = true
예) 스티브 잡스는 한국인 이고AND, 남자이다 = false

평가
OR는 첫번째 true를 발견하는 즉시 평가를 멈춤
예) 스티브 잡스는 남자 이거나OR, 한국인 이거나, 군인 이거나... // 남자라는 정보가 true이므로 뒤에 한국인, 군인 정보는 평가 안함 

AND는 첫번째 false를 발견하는 즉시 평가를 멈춤
예) 스티브 잡스는 남자 이고AND, 한국인 이며, 군인인 동시에... // 남자, 한국인까지 평가하고 false값이 나오므로 뒤에 군인은 평가 X

 

 

(4) 우선순위

 

const gender = 'F';
const name3 = 'Jane';
const isAdult2 = true;

 

남자이고, 이름이 Mike 이거나 성인이면 통과를 하게 하고싶다.

 

if(gender === 'M' && name === 'Mike' || isAdult){   
    console.log('통과') //출력
}   else {
    console.log('불통과')
}

그런데 위와 같이 작성하면?? 남자이거나, Mike이거나, 성인이면 전부 통과가 된다.

 

 

남자이고, 이름이 Mike 이거나 성인이면 통과를 하고 싶다면 아래와 같이 괄호를 넣어 우선순위를 정해서 작성해야한다.

if(gender === 'M' && (name === 'Mike' || isAdult)){   
    console.log('통과') 
}   else {
    console.log('불통과') //출력
}

 

 

 

참고자료

코딩앙마 - 자바스크립트 기초 강좌 : 100분 완성(https://youtu.be/KF6t61yuPCY)

728x90
반응형