본문 바로가기

JS

[Javascript] if 문 (feat. stitch문, 삼항연산식)

컴퓨터는 if문의 연속이라고 할 정도로 중요하다. 

 

1. if문 형식

if(조건문){
조건이 충족하면 할일들
}
if(true){
   console.log("조건은 참 입니다.")
}
if(false){
   console.log("조건은 참 입니다.")
}else {
console.log("거짓 입니다.")
}

*여기서 if (false) {A} else {B}"만약에 A가 거짓이라면, B로 프린트 해다오." 라는 뜻이 된다.

 

예제1)

let age = 21 21살 학생이 있습니다. 
if (age >20){
   console.log("운전이 가능합니다.")
} else {
   console.log("운전이 불가능 합니다.")
}

➞ Console창 "운전이 가능합니다." 프린트
만약에 나이가 20살이 넘으면 "운전이 가능합니다."
아니라면 "운전이 불가능 합니다."

결과창 ➞ 학생 나이가 21살 이므로 "운전이 가능합니다."

 

예제2)

let age = 18 18살 학생이 있습니다. 
if (age >20){
   console.log("운전이 가능 합니다.")
} else if (age >= 18) {
   console.log("오토바이 운전이 가능합니다.")
} else
   console.log("운전이 불가능 합니다.")


*이렇게 조건 하나를 더 붙일 수 있다.
*모든 조건을 충족하지 않을 경우, else로 와서 프린트 한다.
만약에 나이가 20살이 넘으면 "운전이 가능합니다."
그렇지 않으면 나이가 18살보다 크거나 같으면 "오토바이 운전이 가능합니다."
그것도 아니라면 "운전이 불가능 합니다."

 

⭐︎예제3)

let age = 21 21살 학생이 있습니다. 
if (age >= 18) {
   console.log ("오토바이 운전이 가능합니다.")
} else if (age >20) {
   console.log ("운전이 가능합니다.")
} else {
   console.log ("운전이 불가능 합니다.")
}

Console창 프린트 -> 오토바이 운전이 가능합니다.
만약에 나이가 18살 보다 크거나 같으면 "오토바이 운전이 가능합니다."
그렇지 않으면 나이가 20살이 넘으면 "운전이 가능합니다."
그것도 아니라면 "운전이 불가능 합니다."

* if문은 첫 조건에서 참이 나오면 이어지는 모든 조건을 보지 않고 종료 해버리는 특징이 있다. 

* 그리고 if문은 조건들의 순서 임으로 범위를 작은 것부터 큰 순으로 두는 것이 좋다. 

* (age >= 18) ➞ 18,19,20... (범위가 더 넓기에 위 처럼 콘솔창에 첫 범위에 대한 답을 하고 종료한 것.)

* (age > 20) ➞ 21,22,23...

let age = 21 21살 학생이 있습니다. 
if (age >=18 && age<20) {
   console.log ("오토바이 운전만 가능합니다.")
} else if (age>20) {
   console.log ("운전이 가능합니다.")
} else {
   console.log ("운전이 불가능 합니다.")
}

Console창 프린트 -> 운전이 가능합니다.
<- && 잊고 안 쓰는 사람들 정말 많다!! 꼭꼭! 기억하고 쓸 것!

만약에 나이가 18살 보다 크거나 같고 나이가 20살 보다 적다면 "오토바이 운전이 가능합니다."
그렇지 않으면 나이가 20살이 넘으면 "운전이 가능합니다."
그것도 아니라면 "운전이 불가능 합니다."

* (age >=18 && age<20)은 18<=age<20 이랑 같은 뜻이다. 

* 즉, 범위가 작아졌기에 두번째 조건으로 넘어가는 것이 고려 가능해 진다. 

* 코드를 (18<=age<20)으로 쓰고 싶으나 컴퓨터는 알아보지 못하기에 (age>=18 && age<20)로 조건 두 개를 따로 띄어서 쓴다.

(&&연산 : 앞과 뒤 모두 참이어야 참이다. 둘 중 하나라도 거짓이 있다면 전체다 모두 거짓이 된다.)

* || 연산 (OROR연산자) : 둘 다 참이거나, 하나만 참이어도 참이다. 둘 다 거짓일 때만 거짓이다.)

 

예제4)

👑 Logic - 조건문 안에 조건문 👑
let age = 35
let licence = true (let licence = false)
35살 사람이 있습니다.
면허가 있으면 true이다. (없으면 false로 표시)
if(age>20){
  if(licence == true){
    console.log("운전이 가능합니다.")
  } else {
    console.log("면허를 따고 다시 오세요.")
  }
else {
  console.log("운전이 불가능 합니다.")
}
만약에 나이가 20살이 넘고 운전면허가 있다면
➞ YES : "운전이 가능합니다."
NO : "면허를 따고 오세요."
그렇지도 않다면 "운전이 불가능 합니다." (20살 미만 해당)

코딩에서 = 은 오늘쪽에 있는 것을 왼쪽에 넣는다는 의미로 쓰인다. 

하지만 코딩하다 보면 같다(equal)의 의미를 표현해줄 기호가 필요하여 == 로 대체하게 된다. 

A == B : A는 B와 같다. 
A != B : A는 B와 같지 않다.

 

if문과 비슷한 switch, 삼항연산식

if문 switch 삼사연산식
let menu = 1

if(menu == 1){
console.log("물건 사기")
} else if(menu == 2){
console.log("잔고 확인")
} else if(menu == 3){
console.log("히스토리 확인")
} else{
console.log("홈으로 돌아가기")
}
switch (menu){
   case 1 : 
      console.log("물건 사기")
      break;
  case 2 : 
      console.log("잔고 확인")
      break;
  case 3 : 
      console.log("히스토리 확인")
      break;
   defult : 
      console.log("홈으로 돌아가기")
}
 

 

다양한 조건 표현방식 호환성
let menu = 1

if(1<menu && menu<4){
console.log("물건 사기")
} else if(menu == 2){
console.log("잔고 확인")
} else if(menu == 3){
console.log("히스토리 확인")
} else{
console.log("홈으로 돌아가기")
}
• 사용할 수 있는 범위가 조금 더 제한적 
 switch문은 case가 값 하나로 딱 떨어지는
   경우에만 사용 가능
 
표현 불가
➞ 에러 난다
1<ℬ<4
1보다 크고 4보다 작은 값으로 2,3을 직접 명시 해줘야 구현할 수 있음. 
세부적으로 2.1, 2.2 등의 값을 만든다고 가정했을 때 범위 값을 쓰지 못하기에 일일이 case2.1 : / case2.2를 써줘야 한다. 

switch (menu){

   case 2 : 
   case 3 :
      console.log("물건 사기")
      break;
   case 2 : 
      console.log("잔고 확인")
      break;
   case 3 : 
      console.log("히스토리 확인")
      break;
   defult : 
      console.log("홈으로 돌아가기")
}
 
if(menu<=3){
console.log("범위 안의 숫자입니다.")
} else{
console.log("범위 밖의 숫자입니다.")
}





자주 쓰인다

let menu = 2
let answer = menu<=3 ? true 일때 : false 일때

• 조건이 많지 않고
반환(return)하고 싶은 값 딱 하나만
  코드에 있을 때 사용 (둘 중 하나 선택 시)
let menu = 2
let answer = menu<=3 ? "범위 안의 숫자입니다.""범위 밖의 숫자입니다."

console.log(answer)

➞ Console창 프린트 : 범위 안의 숫자입니다.
반응형