개발언어/JavaScript

Conditionals : 조건문 (if,else)

Roxylife 2021. 8. 25. 17:48
  • variable값의 type을 보는 방법 (디폴트: string(문자)이다.)
// prompt는 사용자에게 창을 띄울 수 있도록 해준다.
const age = prompt("How old are you?");

//variable값의 type을 보고싶으면, typeof를 넣는다.
console.log(typeof age);
  • variable값의 type을 변경하는 방법(적용)
// prompt는 사용자에게 창을 띄울 수 있도록 해준다.
const age = prompt("How old are you?");

// variable값의 type을 보고싶으면, typeof를 넣는다.
// parseInt는 string을 number로 바꿔준다.
console.log(typeof "15", parseInt("15"));

콘솔창엔, string number 라고 나타난다.

// prompt는 사용자에게 창을 띄울 수 있도록 해준다.
const age = prompt("How old are you?");

// variable값의 type을 보고싶으면, typeof를 넣는다.
// parseInt는 string을 number로 바꿔준다.
console.log(age, parseInt(age));

콘솔창엔. 24 24

단, 사용자가 숫자가 아닌 다른 걸 입력했을 땐,

콘솔창엔, dfdhfgfhj NaN 이라고 나타난다. (NaN이란? Not a Number란 뜻.)

 

//만약, 이렇게 사용자의 나이를 물어본다면,
const age = parseInt(prompt("How old are you?"));

// 20으로 변환될 것이다.
const age = parseInt("20");
// NaN으로 나타날 것이다.
const age = parseInt("laldfjeijiji");

  • 무언가가 NaN인지를 판별하는 방법

isNaN이란 function을 사용하자.

이 function은 boolean으로 결과값을 알려줘. 입력값이 숫자가 아니면 true, 숫자면 false출력 

const age = parseInt(prompt("How old are you?"));

// isNan이란 입력값이 숫자가 아니면 true, 숫자면 false 출력
console.log(isNan(age));

if(condition) {
    // condition === true
} else {
    // condition === false
}

 

condition에는 boolean으로 판별 가능해야 한다!! 그래서 boolean== function인 isNaN(age) 해당됨.

const age = parseInt(prompt("How old are you?"));

if (isNaN(age)) {
  console.log("Please write a number");
}

새로고침하고, 아무문자나 넣으면 콘솔창에는 Please write a number라고 나타날 것이다.

요약

const age = parseInt(prompt("How old are you?"));

// condition : isNaN(age)
if (isNaN(age)) {
    // condition이 true이면 아래 코드가 실행되고,
  console.log("Please write a number");
} else {
    // condition이 false이면 아래 코드가 실행된다.
  console.log("Thank you for writing your age.");
}

&&: And 연산자, ||: OR 연산자, ===: 이라면?, !==: 아니라면?  규칙에 대해서 ...

더보기

true && true === true 

false && true === false 

true && false === false 

false && false === false

 

true || true === true 

false || true === true 

true || false === true 

false || false === false

 

age === 100 : age가 100이라면?age !== 100: age가 100이 아니라면?
const age = parseInt(prompt("How old are you?"));

if (isNaN(age)) {
  console.log("Please write a number.");
} else if (age < 18) {
  console.log("You are too young.");
} else if (age >= 18 && age <= 50) {
  console.log("You can drink.");
} else {
  console.log("You can't drink.");
}

◎ 끝에 꼭 else 안해도 된다.

const age = parseInt(prompt("How old are you?"));

if (isNaN(age)) {
  console.log("Please write a number.");
} else if (age < 18) {
  console.log("You are too young.");
} else if (age >= 18 && age <= 50) {
  console.log("You can drink.");
} else if (a > 50 && age <= 70) {
  console.log("You should exercise.");
} else if (age > 70) {
  console.log("You can do whatever you want.");
}

만약 사용자가 음수의 값을 입력했을 때,

const age = parseInt(prompt("How old are you?"));

if (isNaN(age) || age < 0) {
  console.log("Please write a real positive number.");
} else if (age < 18) {
  console.log("You are too young.");
} else if (age >= 18 && age <= 50) {
  console.log("You can drink.");
} else if (a > 50 && age <= 70) {
  console.log("You should exercise.");
} else if (age > 70) {
  console.log("You can do whatever you want.");
}

주의할 것!

const age = parseInt(prompt("How old are you?"));

if (isNaN(age) || age < 0) {
  console.log("Please write a real positive number.");
} else if (age < 18) {
  console.log("You are too young.");
} else if (age >= 18 && age <= 50) {
  console.log("You can drink.");
} else if (age > 50 && age <= 80) {
  console.log("You should exercise.");
} else if (age === 100) {
  console.log("wow you are wise.");
} else if (age > 80) {
  console.log("You can do whatever you want.");
}
// age === 100 먼저, age > 80 에는 80~99 포함 (JS에는 적는 순서부터 내려가기 때문)

복잡하게 적고 싶다면, And , Or 연산자 규칙을 잘 쓸 것. 그리고 JS에는 작은 괄호부터 시작된다.

if((a && b) || (c && d) || (x || w)) {
    
}