If, else 문

uoah·2023년 1월 6일
0

문제 풀이

목록 보기
1/9
post-thumbnail

(1) 문제 : 입력받은 숫자의 부호 표시하기

if..else와 프롬프트 대화상자를 사용해 사용자로부터 숫자 하나를 입력받고, 아래 조건에 따라 그 결과를 alert 창에 출력해 보세요.

입력받은 숫자가 0보다 큰 경우 1을 출력
입력받은 숫자가 0보다 작은 경우 -1을 출력
입력받은 숫자가 0인 경우 0을 출력

💡 (1) 나의 답

const num = prompt('숫자를 입력해 주세요');

if(num > 0) {
  alert(1);			// num 이 0보다 크면 1 출력
} else if (num < 0) {
  alert(-1);		// num 이 0보다 작으면 -1 출력
} else {
  alert(0);			// 위의 값이 아닐 경우 0 출력 (num === 0)
}

✅ (1) 해답

let value = prompt('숫자를 입력하세요.', 0);

if (value > 0) {
  alert( 1 );
} else if (value < 0) {
  alert( -1 );
} else {
  alert( 0 );
}

(2) 문제 : 로그인 구현하기

프롬프트(prompt) 대화상자를 이용해 간이 로그인 창을 구현해보세요.
사용자가 "Admin"를 입력하면 비밀번호를 물어보는 프롬프트 대화상자를 띄워주세요.
이때 아무런 입력도 하지 않거나 Esc를 누르면 "취소되었습니다."라는 메시지를 보여주세요.
틀린 비밀번호를 입력했다면 "인증에 실패하였습니다."라는 메시지를 보여주세요.

비밀번호 확인 절차는 다음과 같습니다.

맞는 비밀번호 "TheMaster"를 입력했다면 "환영합니다!"라는 메시지를 보여주세요.
틀린 비밀번호를 입력했다면 "인증에 실패하였습니다."라는 메시지를 보여주세요.
빈 문자열을 입력하거나 입력을 취소했다면 "취소되었습니다."라는 메시지를 보여주세요.

💡 (2) 나의 답

const login = prompt ('login을 원하실 경우 Admin 을 입력해 주세요.');

if(login === "Admin"){
  const pw = prompt ('비밀번호를 입려해 주세요.');
  
  if(pw === "TheMaster") {
    alert ('환영합니다!');
  } else if (pw != "TheMaster" ) {
    alert ('인증에 실패하였습니다.');
  } else {
    alert ('취소되었습니다.');
  }
} else {
  alert ('취소되었습니다.');
};

오류 발생

단순히 else if 는 pw 가 아닌 문자열이라고 조건을 넣으면 되겠지란 했으나 처참히 오류 발생.
pw 의 esle if 가 (pw != "TheMaster") 일 경우 취소나 빈 문자열을 입력하더라도 "인증에 실패하였습니다." 메시지가 보여 주는 오류 발생한다.

⭕️ 다시 풀기

const login = prompt ('login을 원하실 경우 Admin 을 입력해 주세요.');

if(login === "Admin"){
  const pw = prompt ('비밀번호를 입려해 주세요.');
  
  if(pw === "TheMaster") {
    alert ('환영합니다!');
  } else if (pw === "" || pw === null ) {
    alert ('취소되었습니다.');
  } else {
    alert ('인증에 실패하였습니다.');
  }
} else {
  alert ('취소되었습니다.');
}

생각을 바꿔 그렇다면, 빈 문자열 또는 취소를 눌렀을 때를 조건으로 코드를 다시 짰다.
pw === "" 빈 문자열 || (or) 이거나 null (값이 없을 때) '취소되었습니다.' 가 뜨도록 하고 else 에 '인증에 실패하였습니다'를 넣었더니 메시지가 올바르게 보여진다.

✅ (2) 해답

let userName = prompt("사용자 이름을 입력해주세요.", '');

if (userName == 'Admin') {

  let pass = prompt('비밀번호:', '');

  if (pass == 'TheMaster') {
    alert( '환영합니다!' );
  } else if (pass == '' || pass == null) {
    alert( '취소되었습니다.' );
  } else {
    alert( '인증에 실패하였습니다.' );
  }

} else if (userName == '' || userName == null) {
  alert( '취소되었습니다.' );
} else {
  alert( "인증되지 않은 사용자입니다." );
}

💬 나의 답에서는 처음 Admin 입력하는 창에서 Admin 이 아니거나 빈 문자열, 입력을 취소할 경우 '취소되었습니다'가 나오게 하였는데 해답에는 다른 문자열을 입력했을 경우 '인증되지 않은 사용자입니다.'로 나오게 하였다.
추후에는 더 세세하게 코드를 짤 수 있도록 노력해야겠다.

0개의 댓글

관련 채용 정보