JavaScript에서 숫자의 자릿수 확인하기
다음과 같은 숫자가 주어졌다고 가정해 봅시다:
let num = 12345;
숫자의 첫 번째 자릿수에 접근하려고 하면 예상치 못한 동작이 발생합니다:
let num = 12345;
if (num[0] == 1) {
console.log('+++');
} else {
console.log('---'); // 이것이 실행됩니다
}
이미 알고 계셔야 하듯이, 문제는 문자열의 문자에는 접근할 수 있지만 숫자의 자릿수에는 접근할 수 없다는 점입니다:
let num = 12345;
console.log(num[0]); // undefined를 출력합니다
이 문제를 해결하기 위해 숫자를 문자열로 변환해 봅시다:
let num = 12345;
let str = String(num);
if (str[0] == 1) {
console.log('+++'); // 이것이 실행됩니다
} else {
console.log('---');
}
새로운 변수를 도입할 필요는 없으며,
[0]을
String 함수의 결과에 직접
적용할 수 있습니다:
let num = 12345;
if (String(num)[0] == 1) {
console.log('맞음'); // '맞음'을 출력합니다
} else {
console.log('틀림');
}
이제 첫 번째 자릿수가
1 또는 2와 같은지
확인하고 싶다고 가정해 봅시다.
해당 코드를 작성해 보겠습니다:
let num = 12345;
if (String(num)[0] == 1 || String(num)[0] == 2) {
console.log('+++');
} else {
console.log('---');
}
이 경우 String(num)[0] 구문이
두 번 반복됩니다.
이는 첫째로 길고, 둘째로 비효율적입니다.
왜냐하면 숫자를 문자열로 두 번 변환하기 때문입니다.
두 번째 변환은 불필요하며 프로그램 자원이 소모됩니다.
문제를 해결해 보겠습니다:
let num = 12345;
let first = String(num)[0];
if (first == 1 || first == 2) {
console.log('+++');
} else {
console.log('---');
}
정수가 주어졌습니다. 이 숫자의 마지막 자릿수가 0과 같은지 확인하는 조건을 작성하세요.
변수 num에 숫자가 저장되어 있다고 가정합니다.
숫자가 짝수인지 홀수인지 판별하세요.
마지막 자릿수가 0,
2, 4, 6 또는 8와 같으면 짝수이고,
그렇지 않으면 홀수입니다.