[멋사] JavaScript 조건문

챈스·2023년 8월 13일
1
post-custom-banner

JavaScript 조건문 Remind하기

[조건문]

요약

  • 말 그대로 '조건을 가진 문장'으로, 특정한 조건에서만 코드 실행
  • 주어진 조건에 참(true) 또는 거짓(false)여부에 따라 각각 다른 할 일을 정의하는 실행문

조건문 종류

  • if문
    • if문에서는 괄호 안의 조건을 체크해서 결괏값이 true면 if문 다음에 나오는 명령 실행
    • false이면 아무것도 실행하지 않음
if(조건) {
  조건이 true일 때 실행할 명령
}

  • if~else문
    • if~else 문은 if 조건의 결괏값이 true가 아닐 때 실행할 명령을 else문 다음에 추가
if(조건) {
  조건이 true일 때 실행할 명령
} else {
  조건 결괏값이 false일 때 실행할 명령
}

  • switch문
    • 조건 값과 case의 값이 일치한 경우에만 동작을 실행하며, 케이스별로 명확히 구분하고 있어 if문에 비해 가독성이 좋음
    • 조건과 일치하는 case 문이 없는 경우 default문 실행
switch(조건)
{
  case1: 명령1
   break;
  case2: 명령2
   break;
  ...
  default: 명령n
}

조건문 Output

  • if~else문
// 5의 배수 확인하기

let userNumber = prompt("숫자를 입력하세요.");

if (userNumber !== null) { // 입력값이 null이 아니면(true) if~else문 실행   
  userNumber = parseInt(userNumber); /* prompt()문을 사용해 입력받은 값은 기본적으로 문자열로 저장됨.
parseInt()함수를 사용해 입력받은 값을 처음부터 숫자로 바꿔주는 것이 안전함
(문자열 값이라도 산술 연산에 사용할 경우 자동으로 숫자형으로 변환되지만,
데이터 유형이 자동으로 변환되기 때문에 예상치 못한 곳에서 다르게 변환될 수 있음)
*/ 
  if (!isNaN(userNumber)) { // userNubmber가 isNaN이 아니면(true) if~else문 실행
    if (userNumber % 5 === 0) { // userNumber가 5의 배수이면
      alert("5의 배수입니다.");
    } else {
      alert("5의 배수가 아닙니다.");
    }
  } else {  // userNumber가 isNaN이면
    alert("숫자가 아닙니다.");
  }
} else { // 사용자가 '취소'버튼을 눌렀을 경우
  alert("입력이 취소 되었습니다");
}

  • switch문 + if문 응용
let luckNumber = parseInt(prompt("오늘의 운세는?🤗 (1 ~ 3 사이의 숫자 하나만 입력해주세요!)"));

switch(luckNumber) {
  case 1: 
	alert("오늘은 뭘 먹어도 살 안찌는 날😆 맛있는 음식 마음대로 드세요!!")
    break;  // break문을 사용해야 해당 switch문을 빠져나올 수 있음. break를 입력하지 않으면 다음 case문까지 실행 됨.
  case 2: 
    alert("오늘은 무엇을 해도 전부 잘 될거에요! 하고 싶은 일을 도전해 봐요~😘")
    break;
  case 3: 
    alert("금전운이 좋네요! 예상치 못했던 수입이 들어올 수 있어요!😎")
    break;
  default: 
	if (luckNumber < 1 || luckNumber > 3 || isNaN(luckNumber)) {
      alert("1 ~ 3 사이의 숫자를 입력하지 않았어요..😥");
    } // luckNumber가 1보다 작거나, 3보다 크거나, 숫자가 아닌 경우 3개 조건 중 1개라도 true이면 alert 실행
}

Finding (배운 점)

if~else문에서 "let userNumber = parseInt(prompt("숫자를 입력하세요.");로 입력 했더니, 사용자가 입력을 취소할 때 '입력이 취소되었습니다' 문구가 나오지 않는 문제가 발생했다. 구글링&챗GPT 도움 결과, prompt에서 취소를 누를 경우, pasreInt(null)이 되기 때문에 결과적으로 NaN이 반환되어 문제가 발생되었던 것이다.
문제 해결 방법: 최초에 prompt입력받을 때 parseInt를 없애주고 "let userNumber = prompt("숫자를 입력하세요.");, if문 안에 parseInt를 작성하여 해결하였다. if (userNumber !== null) { userNumber = parseInt(userNumber);...


Feeling (느낀 점)

내가 적용해보고 싶은 내용으로 실습을 하다보니 학습에 많은 도움이 되는 것을 느꼈다. 그 이유를 생각해보면 '내 것'이라는 마음이 크게 작용한 것 같다. 오늘 if~else문에서 문제가 발생한 부분을 어떻게든 해결하려고 몰입한 나를 발견해서 기분이 좋았다.

profile
열정적 끈기의 힘(GRIT)
post-custom-banner

1개의 댓글

comment-user-thumbnail
2023년 8월 13일

개발자로서 성장하는 데 큰 도움이 된 글이었습니다. 감사합니다.

답글 달기