문제
x와 n의 값을 받아서 x의 n 제곱 값을 반환하는 함수 만들기
(n의 값은 1 이상의 자연수일 것)
나의 풀이
function pow(x, n) {
if (n < 1) {
alert(`${n}은 양의 정수이어야 합니다.`);
} else {
for (let i = 1; i < n; i++) {
x *= x;
}
return x;
}
}
let x = prompt("x?", "");
let n = prompt("n?", "");
alert(pow(x, n));
문제점
- for문 안의 x를 따로 변수 선언하지 않아 혼동 가능성 있음
- 거듭제곱 함수 안에 n의 자연수 조건문 분리 필요
해답
function pow(x, n) {
let result = x;
for (let i = 1; i < n; i++) {
result *= x;
}
return result;
}
let x = prompt("x?", '');
let n = prompt("n?", '');
if (n < 1) {
alert(`${n}은 양의 정수이어야 합니다.`);
} else {
alert( pow(x, n) );
}
- 거듭제곱 함수 안에 x를 따로 변수 선언
- n의 자연수 조건문을 따로 작성, 결과식과 연결 -> 훨씬 깔끔하고 가독성 좋은 코드 완성!
업그레이드
자연수를 입력할 때까지 n의 값을 계속 받고 싶다면?
function pow(x, n) {
let result = x;
for (let i = 1; i < n; i++) {
result *= x;
}
return result;
}
let x = prompt("x?", "");
let n = prompt("n?", "");
if (n < 1) {
while (n < 1) { // 반복문으로 n의 값 받아냄
alert("자연수를 입력해주세요.");
n = prompt("n?", "");
}
alert(pow(x, n));
} else {
alert(pow(x, n));
}
참고
https://ko.javascript.info/function-basics
'Programming > Client' 카테고리의 다른 글
[Javascript] 문자열의 첫글자만 대문자로 변경 후, 출력 (0) | 2022.03.16 |
---|---|
[Javascript] 유효한 숫자를 입력할 때까지 반복하는 함수 (0) | 2022.03.15 |
[Javascript] 메서드 호출 체이닝 구조 만들기 (0) | 2022.03.08 |
[Javascript] ?나 ||를 사용하여 함수 작성 (0) | 2022.03.02 |
[Javascript] 사용자가 유효한 값을 입력할 때까지 프롬프트 창 띄우기 (0) | 2022.02.28 |