조건문 if

야 나 개 ·2021년 10월 7일
0
post-thumbnail

if (조건문을 모르면){return 아래 글을 읽자}

조건문...가장 쉽게..생각해보자

(취업이 중요하지만 이해를 해야 재미있을테니 ...그래야 공부할테니...공부하면 취업하겠지...회사를 다녀도 재미있어야 한다.!! 한번사는 인생 재미있게..)
!!

쉽게 정리를 해보겠다!! 자 팔로미 팔로미

먼저 조건문을 간단히 설명하면

만약에 이조건이 맞다면 실행하고

틀리면 넘어가라 ~~ (내 머릿속 언어...)

JS 코드로 적으면

if (3>2){
return true; 
} else if (4>2){
return true; 
} else return false;

이해 되었다면...바로 문제를 풀어봅시다~~ㅋㅋㅋ

혹시 TMT 하면 !!

if (3>2){   // 3보다 2가 큰게 맞으니 투르 출력하겠다. 
return true; 
} else if (4>2){  // 4보다 2가 큰게 맞으니 투르 출력하겠다.
return true; 
} else return false;  // 이외는 전부 false 출력하겠다.

그래도 이해안되면 ... if () <=괄호에 들어가는 조건이 맞다면 실행하고
틀리면 다음으로 넘어간다.


그리고 이게 와닿았다면 연산자를 넣어서 다양한 조건문을 쓸수 있다.

&& 는 둘다 맞는 조건일때 실행

|| 는 둘중 하나라도 맞을때 실행 이건 여러번 써도 됨

그리고 마지막으로 조건문은 순서대로 작동된다. !!!!

이말은 우선순위가 정말 중요하다. !! 가장 특별한 경우를 먼저 출력하고
나머지는 이렇게 출력해 ~~ 하면 단순하다 ...


그리고 코드짤때 정말 수도코드가 중요하다
적지않고 바로 하면 찐천재~~ 인정~~ ㅋㅋㅋ바로 하삼!!

하지만, 여럽다면 수도코드를 적자 최대한 쉽게 ...(사실 저 말이 더 부담된다...얼마나 쉬워야 하는가...) 밑에 예를 들겠다. 잘 봐라 얼마나 쉬운지

(천하에 초보자가 혓바닥이 왜케 길어...) 문제로 설명하겠다.
그리고 이게 실제 어디서 사용가능할지 예측해보자 ~~~ 왜 배우는지를 알아야 와닿고 열심히 할테니!!

세가지 문제로 다시 정리해보자


1.특정 달(month)을 입력받아 각 달에 몇 일이 있는지 리턴해라

예를 들어 12월이 입력되면 31 나오고 2월이면 28일 나오고
다행히 윤달은 없는걸로 하자..

1-1번째 문제풀이

function daysInMonth(month) {
  if (month === 1) return 31;
  if (month === 2) return 28;
  if (month === 3) return 31;
  if (month === 4) return 30;
  if (month === 5) return 31;
  if (month === 6) return 30;
  if (month === 7) return 31;
  if (month === 8) return 31;
  if (month === 9) return 30;
  if (month === 10) return 31;
  if (month === 11) return 30;
  if (month === 12) return 31;

정말 간단한다 @,.@ ㅋㅋㅋㅋㅋㅋㅋ정말 직관적이다.
하지만 만약....100개거나,, 1억개를 적어야할 경우 다 적을수 없으니.

공통점을 찾자 7월까지는 짝수달이 30일네
8월부터는 홀수달이 30일네 ~~~
2월달은 너무 특별하다.
나머지는 전부 31일 ~~ 오예

1-2번째 문제 풀이

function daysInMonth(month) {
    if (month === 2){
    return 28;
  }  
  else if ( month <= 7 && month%2 === 0){
    return 30;
  }
  else if (month >=9 && month %2 !==0){
    return 30;
  }
  else {
    return 31;
  }  
}

뭔가 더 줄일수 있을거 같다... 30일은 4번 밖에 없네
2월달은 너무 작고 소중하다.

1-3번째 문제 풀이

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

2.삼각형의 세 변을 입력받아 직각삼각형(pythagorean)인지 여부를 리턴해야 합니다.

function isPythagorean(side1, side2, side3) {

}

수도코드는 쉽게 적자...
//side1 이 가장 길 때
//side2 가 가장 길 떄
//side3 이 가장 길 떄
// 피타고라스 정리에 맞으면 뚜르 ~~

2-1문제풀이

function isPythagorean(side1, side2, side3){
 if(side1 > side2 && side1>side3) {
   if(side1*side1 ===(side2*side2 + side3 * side3)){
     return true;
   }else return false;
 }

 if(side2 > side1 && side2>side3) {
   if(side2**2 ===(side1**2 + side3**2)){
     return true;
   }else return false;
 }

 if(side3 > side1 && side3>side2) {
   if(Math.pow(side3,2) === Math.pow(side2,2) + Math.pow(side1,2)){
     return true;
   }else return false;
 }

여기서 자바스크립트에서 제곱을 구하는 방법은 3가지가 있다.
side1*side1
side2**2
Math.pow(side3,2)

나보다 MDN에 혹은 다른 블로그가 더 자세히 나와있으니 찾자...

어떤가 위에 코드가 잘보이는가????????????
..............하 .......벌써 어지럽다..

공통점을 찾아 변수를 활발히게 사용해보자
변수 키워드는 let , const, var 있는데 추후에 스코프 시간에 자세히 다뤄겠다. 지금은 const 키워드를 사용해 변수를 선언 하겠다. (알겠나 휴먼?~)
나머지를 활용해보자..

2-2번째 문제풀이

function isPythagorean(side1, side2, side3) {
 const pow1 = side1 * side1;
 const pow2 = side2 ** 2;
 const pow3 = Math.pow(side3, 2);

 if (pow1 === pow2 + pow3 || pow2 === pow1 + pow3 || pow3 === pow1 + pow2) {
   return true;
 }

 return false;
}

** 여기서 잠깐 중요한 기법

MECE기법

'겹치지 않으면서 빠짐없이 나눈 것' 이게 뭔말인가 .....

이것을 잘 보여주는 예를 들겠다.


3번문제

AppleMango

3의 배수면 Apple
5의 배수면 mango

string 타입을 리턴해야 합니다.
3으로 나누어 떨어지는 경우, 'Apple'를 리턴해야 합니다.
5으로 나누어 떨어지는 경우, 'Mango'를 리턴해야 합니다.
3과 5로 모두 나누어 떨어지는 경우, 'AppleMango'를 리턴해야 합니다.
3이나 5로 나누어 떨어지지 않는 경우, 'No AppleMango'를 리턴해야 합니다.

3-1 문제풀이

문제 순서대로 코드를 작성하면

function AppleMango(num) {
  
  if (num%3 === 0) {
    return 'Apple'; 
  }else if (num%5 === 0){
    return 'Mango';
  }else if (num%3 === 0 && num%5 === 0){
    return 'AppleMango';
  }else {
    return 'No AppleMango';
  
}

이렇게 작성하면....우리 15는....30은....ㅜㅜ Apple이 먼저 나와서
애플망고를 먹을수 없다.

그래서 먼저 공통의 것을 먼저 해줘야 한다.

최소공배수를 먼저 실행시켜주고 나머지를 해야한다. 몬말인지 알지??~~

3-2 문제풀이

function AppleMango(num) {
  // TODO: 여기에 코드를 작성합니다.

  if (num%3===0 && num%5===0){
    return 'AppleMango';
  }
  else if (num%3===0){
    return 'Apple';
  }
  else if (num%5===0){
    return 'Mango';
  }
  else {
    return 'No AppleMango'
  }
}

조건문 내 머릿속 정리

포인트 정리

  1. 공통점 찾기
  2. 작고 소중한거 먼저
  3. 우선순위 구별

이제 조건문 끝내겠다...
계속 나올테니... 걱정마시게~~~ 😅

profile
야 나도 개발자 될 수 있어

0개의 댓글