본문 바로가기
Program/java script

자바스크립트 03. Java script 조건문 (기초, 문제 정리)

by Apeach_:) 2020. 12. 14.

 

Achievement Goals

조건문 기초, 퀴즈, 실습

  • truthy와 falsy 가 조건문에서 작동하는 방식을 이해할 수 있다.
  • 비교연산자를 통한 엄격한 비교(=== , !==)에 대해 이해할 수 있다.
  • if 와 else if , else를 이해하고 무리없이 활용할 수 있다.
  • 논리연산자를 (&&, ||, ! ...)을 통해 복잡한 조건을 간결하게 작성할 수 있다.

조건문 문제로 에러 메세지 알아보기

  • 코플릿 에러 메세지 읽는 법을 배우고, 이를 기반으로 문제를 고치는 방법을 배웁니다.

조건문 문제로 배우는 알고리즘

  • 조건문 13번 문제 해결 방법을 익히면서, 문제를 체계적으로 해결하는 방법을 배운다.
  • 복잡한 조건문을 활용하여 실생활에서 쉽게 마주할 수 있는 문제를 해결할 알고리즘을 짤 수 있다.

 

조건문 목차

1. if 문
2. if / else 문
3. if / else if / else 문

4. 중첩 if문
5. switch 문

 

 

*조건문에는 비교연산자가 필요함

 

> 초과

<미만

>= 이상

<= 이하

=== 같다

!== 다르다

 


아래 연산자는 엄격하게 비교하진 않지만 좋지 않음.

 

== 같다

!= 다르다

 

조건문은 다음과 같이 쓸 수 있습니다.

if (조건1)  {

 //조건 1이 통과할 경우

}else if (조건 2){

  //조건 1이 통과하지 않고

  //조건 2가 통과할 경우

}else {

  //모든 조건이 통과하지 않는 경우

}

 

 

 

&& 그리고

|| or 연산자

! not 연산자

=== 같다면

 

6가지의 false값이 있음

if구문에서 실행이 되지 않는 값

 

if(false)

if(null)

if(undefined)

if(0)

if(NAN)

if('')

 

1. If, else if, else

 

const name ='df';
if(name==='ellie'){
 console.log('Welcome, Ellie!');
}else if (name ==='coder'){
 console.log('You are amazing coder');
} else {
 console.log('unkwnon');
}

 

2. Switch statement

const browser ='IE';
switch (browser){
 case 'IE':
   console.log ('go away')
   break;
 case 'Chrome':
 case 'Firefox': //같은 내용을 출력하면 case를 묶으면 됨.
   console.log('love you!');
   break;
  default:
   console.log('same all!');
}   

 

 

** 다양한 문제로 익히는 자바스크립트 

 

function convertScoreToGradeWithPlusAndMinus(score) {
  // score가 100이면 즉시 A+가 최종 결과가 된다.
  if(score === 100) {
    return 'A+';
  }

  // score에서 10의 자리를 얻어낸다.
  let tensDigit = Math.floor(score / 10);

  // score에서 1의 자리를 얻어낸다.
  let unitsDigit = score % 10;

  let gradeLetter;

  if(tensDigit === 6) {
    // 10의 자리가 6이면, Grade Letter는 D 이다.
    gradeLetter = 'D';
  }
  else if(tensDigit === 7) {
    // 10의 자리가 7이면, Grade Letter는 C 이다.
    gradeLetter = 'C';
  }
  else if(tensDigit === 8) { 
    // 10의 자리가 8이면, Grade Letter는 B 이다.
    gradeLetter = 'B';
  }
  else if(tensDigit === 9) { 
    // 10의 자리가 9이면, Grade Letter는 A 이다.
    gradeLetter = 'A';
  }
  
  let sign = ''; // (Grade Letter 뒤에 붙는) 기호는 기본적으로 빈 문자열이다.

  if(unitsDigit >= 0 && unitsDigit <= 2) {
    // 1의 자리가 0~2 이면, 기호는 `-`이다.
    sign = '-'; 
  }
  else if(unitsDigit >= 8 && unitsDigit <= 9) {
    // 1의 자리가 0~2 이면, 기호는 `+`이다.
    sign = '+'; 
  }

  // 최종 결과는 Grade Letter와 기호를 문자열을 조합한다.
  // 최종 결과를 리턴한다.
  return gradeLetter + sign;
}

조건문 문제풀기

1.18세 이상 술 마실 수 있는지 없는 지

 

function isOldEnoughToDrink(age) {
  // TODO: 여기에 코드를 작성합니다.
  if(age>=18) { 
    return true; 
    } else { 
      return false; 
    }   
}

2.

function isGreaterThan30(temp) {
  // TODO: 여기에 코드를 작성합니다.
  if(temp>=30){
    return '에어컨을 켜야겠다!';
  } else{
    return `여름이 매우 덥네요`;
  }
}

3.

function equalsTen(num) {
  // TODO: 여기에 코드를 작성합니다.
  if(num === 10 ){
    return true;
  }else{
    return false;
  }
 
}

4.

function isGreaterThan(num1, num2) {
  // TODO: 여기에 코드를 작성합니다.
  if (num1>=num2){
    return false;
  }else{
    return true;
  }
}

5. 짝수 여부 파악하기

 

function isEven(num) {
  // TODO: 여기에 코드를 작성합니다.
  if(num % 2 ==0){
    return true; 
  } else {
    return false;
  }
}

6. 

function isEvenAndGreaterThanTen(num) {
  // TODO: 여기에 코드를 작성합니다.
if(num>10 &&num % 2 ==0){
    return true; 
  } else {
    return false;
  }

}

7.수를 입력받아 3 그리고 5로 각각 나눈 뒤 나머지 값에 따라 알맞은 메시지를 리턴해야 합니다.

function fizzBuzz(num) {
  if (num % 3 === 0 && num % 5 === 0) {
    return 'FizzBuzz';
  } else if (num % 3 === 0) {
    return 'Fizz';
  } else if (num % 5 === 0) {
    return 'Buzz';
  } else {
    return 'No FizzBuzz';
  }
}

8. 두 개의 수와 기호를 입력받아 알맞게 계산한 값을 리턴해야 합니다.

function miniCalculator(num1, num2, operator) {
  if (operator === '+') {
    return num1 + num2;
  } else if (operator === '-') {
    return num1 - num2;
  } else if (operator === '*') {
    return num1 * num2;
  } else if (operator === '/') {
    return num1 / num2;
  }
}

9. 날짜 해당 일 수 출력

function daysInMonth(month) {
  if (month === 2) {
    return 28;
  } else if (month === 4 || month === 6 || month === 9 || month === 11) {
    return 30;
  } else {
    return 31;
  }
}

10. 두 개 수를 입력받아 아래의 2가지 조건을 모두 만족하는지 검사합니다.

  1. EitherEven: 적어도 하나의 수는 짝수이다.
  2. LessThan9: 두 수 모두 9보다 작다.
function isEitherEvenAndLessThan9(num1, num2) {
  // TODO: 여기에 코드를 작성합니다.
  if( num1<9 && num2<9){
    if(num1%2===0 || num2%2===0){
    return true;
    }
    return false;
  }else{
    return false;
  }

}

12. 점수를 입력받아 점수에 해당하는 등급을 리턴해야 합니다.

function convertScoreToGrade(score) {
  let grade;
  if (score > 100 || score < 0) {
    return 'INVALID SCORE';
  }
  if (score >= 90) {
    grade = 'A';
  } else if (score >= 80) {
    grade = 'B';
  } else if (score >= 70) {
    grade = 'C';
  } else if (score >= 60) {
    grade = 'D';
  } else if (score >= 0) {
    grade = 'F';
  }

  return grade;
}