본문 바로가기
JavaScript

[JS] 조건문

by 홍code 2022. 7. 2.

특정 조건이 성립되었을 때 그 조건에 해당하는 코드를 실행하게 하는 문법

If 구문

  • If문 다음 괄호()에 참과 거짓을 판별할 조건을 작성한다.
let random = Math.random(); // 0 ~ 1 사이의 수를 랜덤으로 생성해주는 함수

if (random < 0.5) {
	console.log("0.5보다 낮은 수가 생성됨!");
	console.log(random);
}

if (random >= 0.5) {
	console.log("0.5보다 크거나 같은 수가 생성됨!");
	console.log(random);
}

Else if / Else 구문

  • 조건문을 적은 순서대로 동작한다.
    • if 문이 거짓일 때 다음 else if 문이 적용된다.
    • 조건문이 참이 되는 순간 나머지 부분은 실행되지 않는다.
  • else문은 모든 조건의 마지막에 온다.
    • 매치되는 조건이 없을 때 마지막 항목으로 적용된다.
    • 어떤 조건도 지정하지 않는다. 괄호 X
const score = 95;


if (age >= 90) {

	console.log("A");
    
} else if (age >= 80) {

	console.log("B");
    
} else if (age >= 70) {

	console.log("C");
    
} else {

	console.log("D");
    
}

조건부 네스팅

Nested Conditionals

  • 조건 중첩하기
    • 패스워드 조건: 1) 6자 이상, 2) 공백 없음
  • 공백이 없는 패스워드 조건
    • indexOf() 활용. 공백이 없다면 -1이어야 함.
const password = prompt("please enter a new password");


// Password must be 6+ characters

if (password.length >= 6) {

	// Password cannot include space
    
	if (password.indexOf(' ') === -1) {
    
		console.log("Valid Password!");
        
	} else {
		console.log("Password cannot contain spaces!");
        
	}
    
} else {

	console.log("Password too short! Must be 6+ characters");
    
}

논리 함수 AND

Logical Operators

  • 논리 연산자를 활용하면 다른 두 표현식을 합쳐 여러 논리를 하나로 결합함으로써 하나의 큰 논리를 형성할 수 있다.
  • AND OR NOT

AND &&

const password = prompt("Enter your password");

if (password.length >= 6 **&&** password.indexOf(' ') === -1) {

	console.log("VALID PASSWORD!")
    
} else {

	console.log("INCORRECT FORMAT FOR PASSWORD!")
    
}
  • 좌항, 우항이 있고 문장이 참이 되려면 둘 다 참이어야 한다.
  • 한쪽이 거짓으로 판명되면 문장 전체가 거짓이 된다.
  • ⇒ 단락 평가(short circuit evaluation)
    • 첫 번째가 거짓일 경우 바로 거짓으로 판단하고 평가 중단 (두 번째를 보는 것은 비용 낭비)

논리 함수 OR

OR ||

  • 둘 중 하나만 참이어도 참이 된다.
true || true // true

true || false // true

false || true // true

false || false // false

 

true && true // true

true && false // false

false && true // false

false && false // false

 

// 0 - 5 FREE

// 5 - 10 CHILD $10

// 10 - 65 ADULT $20

// 65+ SENIOR free


const age = 8;


if (age >= 0 && age < 5 **||** age >= 65) { // 0 - 5 **OR** 65+

	console.log("You get in for free!");
    
} else if (age >= 5 && age < 10) { // 5 - 10

	console.log("You pay $10.");
    
} else if (age >= 10 && age < 65) { // 10 - 65

	console.log("You pay $20.");
    
} else {

	console.log("INVALID AGE!");
    
}
  • AND는 OR보다 우선순위가 높다. ⭐
    • 더 명확하게 하고 싶다면 괄호 사용
    • if ((age >= 0 && age < 5) || age >= 65)

논리 함수 NOT !

  • 값을 반전시킨다.
!null // true

! (0 === 0) // false

!(3 <= 4) // false

 

const age = 45;

if (**!**(age >= 0 && age < 5 || age >= 65)) {

	console.log("YOU ARE NOT A BABY OR A SENIOR!");
    
}

Switch 조건문

  • another control-flow statement that can replace multiple if statements.
  • 길어지는 if 조건문을 case별로 조건 일치 여부를 확인
  • 일치하는 항목을 찾으면 스위치가 거기서부터 중단 지점까지 계속 코드를 실행
  • break 필요
  • 아무것도 일치하지 않을 땐 default
  • 수많은 케이스를 한꺼번에 확인할 때는 편리하다.
  • 하지만 대부분 상황의 논리와 들어맞지 X. 자주 쓰이진 않음.
let country = "ko";

switch (country) {

	case "ko":
    
		console.log("한국");
        
		break;
        
	case "uk":
    
		console.log("영국");
        
		break;
        
	default:
    
		console.log("미 분류");
        
		break;
        
}

'JavaScript' 카테고리의 다른 글

[JS] 객체  (0) 2022.07.02
[JS] 배열  (0) 2022.07.02
[JS] 연산자  (0) 2022.06.29
[JS] 변수와 상수  (0) 2022.06.29
[JS] 자료형  (0) 2022.06.29

댓글