TIL26 - JavaScript Replit Assignment [vol.2]

오지수·2021년 6월 13일
0

JavaScript

목록 보기
13/18
post-thumbnail

06. Math Expressions

::Assignment::

  • index.js에 작성 되어 있는 mathExpression 함수의 결과 값이 22가 나오도록 수정해 주세요.
//문제
function mathExpression() {
  // 다음 코드의 값이 22가 되도록 수정해주세요.
  let result = 5 + 6 * 10 / 2 * 2.5 ;
 
  // 다음 코드는 수정하지 마세요!
  return result;
}

My code


function mathExpression() {
  let result = (10 * 2) + 2;
  return result;
}

답은 맞지만 처음에 문제 이해를 잘못해서 원래의 코드에서 수정하는 게 아니라 아예 내 마음대로 수학식을 바꾸어 버렸다는 것을 알게 되었다.

그래서 다시 처음 코드로 돌아가 다른 방식으로 접근하였다.

function mathExpression() {
  let result = (5 + 6) * 10 / (2 * 2.5) ;
  return result;
}

() 안의 숫자를 먼저 계산하기 때문에 result = 11 * 10 / 5가 되고 결과적으로 result = 22가 된다.

Result


07. 텍스트 문자열의 연결

::Assignment::

  • index.js 에 textConcatenation 함수를 수정하여서 다음 문장이 리턴 될 수 있도록 해주세요.
"2 더하기 2는 4"
  • hint : 뒤의 2 + 2 수학식이 먼저 계산되도록 묶어주세요.

My code

function textConcatenation() {
  // 원래 코드 : "2 더하기 2는" + 2 + 2;
  // 이대로 실행한다면 "2 더하기 2는 22" 라는 결과가 나온다.
  // 2 + 2를 더한 결과값 4가 나오기 위해서는 괄호로 묶어준다.
  let text = "2 더하기 2는 " +  (2 + 2);
  

  return text;
}

Result


08. if문

::Assignment::

  • myFavoriteColor 함수는 "색깔"을 인자로 받고 3가지 결과 값을 리턴합니다.
  • if문을 사용해 다음 조건에 맞게 함수를 구현 해주세요.
    • color 가 "navy" 이면 "Good!" 리턴
    • color 가 "yellow" 이면 "Bad!" 리턴
    • 그 외의 경우 "Whatever!" 리턴

My code

function myFavoriteColor(color) {
  if (color == "navy") {
    return "Good!";
  } else if (color == "yellow") {
    return "Bad!";
  } else {
    return "Whatever!";
  }
}

Another solution

function myFavoriteColor(color) {
  let result = ""                  // result라는 변수 선언. 빈 문자열 할당.
  
  if (color === "navy") {			// ===. 엄격한 비교를 사용하여 값과 자료형을 비교함.
    result = "Good!";              // 조건의 결과에 따라 결과값을 할당.
  } else if (color === "yellow") {
    result = "Bad!";
  } else {
    result = "Whatever!";
  }
  
  return result;                   //조건문에서 빠져나온 후 최종값이 들어있는 result를 반환함.
}
  • ==(느슨한(동등) 비교) : 서로 다른 유형의 두 변수 각각의 값만 비교함
  • ===(엄격(일치) 비교) : 동등 비교 연산자. 값과 타입이 같은지 비교함

09. 비교연산자

::Assignment::

  • 우리나라는 20살 부터 술을 마실 수 있습니다. 우리나라 사람들이 가장 즐겨마시는 술은 소주 입니다.
  • canIDrinkSoju 함수 안에 비교 연산자를 사용하여 다음의 경우들이 구현될 수 있도록 해주세요.
    • age 가 20살 보다 어리면: "애야 가서 공부나 해라!" 리턴
    • age 가 50살 이상이면: "건강을 위해서 술은 적당히 마시세요!" 리턴
    • 그 외의 경우에는: "소주에는 곱창 어떠신가요?" 리턴

My code

function canIDrinkSoju(age) {
  let result = '';
  if (age < 20) {
    result = "애야 가서 공부나 해라!" 
  } else if (age >= 50) {
    result = "건강을 위해서 술은 적당히 마시세요!"
  } else {
    result = "소주에는 곱창 어떠신가요?"
  }
  
  return result; 
}

Result


10. 논리연산자

::Assignment::

  • rockPaperScissors 함수를 구현해서 가위 바위 보 게임을 구현해주세요.
  • 가능하면 || 와 && 연산자 둘다 사용해주세요.
  • player1과 player2 중 이긴 사람이 누군지 리턴해주세요.
  • 예를 들어, player1이 이겼으면 "player1" 이 리턴 되고 그 반대의 경우라면 "player2"가 리턴이 되어야 합니다.
  • 만일 비기는 경우에는 무조건 "player1"이 리턴 되어야 합니다.
  • player1 과 player2 의 값은 다음 셋 중 하나 입니다.
    • "가위"
    • "바위"
    • "보"
  • 예를 들어, player1은 "가위" 이고 player2는 "보" 이면 "player1" 이 리턴 되어야 합니다.

어렵지는 않았는데 코드 작성할 때 조금 번거로웠던 문제였다.

My code

function rockPaperScissors(player1, player2) {
  if ((player1 === '가위' && player2 == '가위') || (player1 === '바위' && player2 == '바위') || (player1 === '보' && player2 == '보')) {
    // player1과 player2가 무승부일 때
    return "player1";
  } else if ((player1 === '가위' && player2 == '바위') || (player1 === '바위' && player2 == '보') || (player1 === '보' && player2 == '가위')) {
    // player2가 이겼을 때
    return "player2";
  } else {
    // player1이 이겼을 때
    return "player1";
  }
}

Another solution

function rockPaperScissors(player1, player2) {
  let result;
  
  if ( player1 === "가위" && (player2 === "보" || player2 === "가위") ) {
    result = "player1" 
  } else if (player1 === "바위" && (player2 === "가위" || player2 === "바위")) {
    result = "player1"
  } else if (player1 === "보" && (player2 === "바위" || player2 === "보")) {
    result = "player1"
  } else {
    result = "player2"
  }
  
  return result   //조건문에서 나와서 할당된 result를 이제 반환!
}
  • player1 === '가위' && (player2 === '보' || player2 === '가위') 이런 식으로 한꺼번에 묶어서 표현할 수도 있다는 것을 알게 되었다!
  • 변수를 사용하여 코드 안에서 결과값을 저장해주고 마지막에 결과값을 반환하는 방식을 사용하는 것이 깔끔해보이기 때문에 이렇게 사용하는 것이 좋겠다.

Result


profile
My Moto:: 내 스스로와 더불어 주변에게도 좋은 영향을 행사하도록 점검 & 노력..!!

0개의 댓글