덧셈 고치기
중요도: 5
아래 코드는 사용자에게 숫자 2개를 입력받은 다음 그 합을 보여줍니다.
그런데 의도한 대로 예시가 동작하지 않습니다. 프롬프트 창에 세팅한 기본값을 수정하지 않은 경우 덧셈의 결과는 12
가 됩니다.
왜 그럴까요? 예시가 제대로 동작하도록 코드를 수정해 보세요. 결과는 3
이 되어야 합니다.
let a = prompt("덧셈할 첫 번째 숫자를 입력해주세요.", 1);
let b = prompt("덧셈할 두 번째 숫자를 입력해주세요.", 2);
alert(a + b); // 12
의도한 대로 덧셈이 되지 않는 이유는 prompt 함수가 사용자 입력을 문자열로 반환하기 때문입니다.
그래서 프롬프트 창에서 입력한 변수들은 각각 문자열인 "1"
과 "2"
가 되죠.
let a = "1"; // prompt("덧셈할 첫 번째 숫자를 입력해주세요.", 1);
let b = "2"; // prompt("덧셈할 두 번째 숫자를 입력해주세요.", 2);
alert(a + b); // 12
예시가 제대로 동작하게 하려면 덧셈 연산 +
가 수행되기 전에 문자열을 숫자로 변환해야 합니다. 이때 Number()
를 사용하거나 변수 앞에 +
를 붙여줄 수 있습니다.
아래 코드에선 prompt
함수 바로 앞에서 문자열을 숫자로 변환했습니다.
let a = +prompt("덧셈할 첫 번째 숫자를 입력해주세요.", 1);
let b = +prompt("덧셈할 두 번째 숫자를 입력해주세요.", 2);
alert(a + b); // 3
아래 코드에선 alert
함수 안에서 문자열을 숫자로 변환해 보았습니다.
let a = prompt("덧셈할 첫 번째 숫자를 입력해주세요.", 1);
let b = prompt("덧셈할 두 번째 숫자를 입력해주세요.", 2);
alert(+a + +b); // 3
코드 한 줄 안에서 단항, 이항 +
연산자를 한꺼번에 쓰니 조금 웃겨 보이네요.