JAVASCRIPT

자바스크립트 함수 예제

진블로그 2023. 2. 28. 23:03
다른 명언

728x90
반응형

문제 1) 사용자가 프롬프트 창에 숫자를 입력했을 때 그 숫자를 함수로 넘겨주고, 함수에서는 숫자가 양수인지, 음수인지, 또는 0인지 판단해서 알림 창에 보여주는 프로그램을 작성해 보세요.

function isPositive(n) {
  if (n > 0) {
    alert(`${n}은 양수입니다.`);
  } else if (n < 0) {
    alert(`${n}은 음수입니다.`);
  } else {
    alert(`${n}은 0입니다.`);
  }
}
const number = parseInt(prompt('숫자를 입력하세요.'));
// parseInt() 는 숫자가 아닐 경우 NaN을 반환함
if(!isNaN(number)) {  // 숫자일 경우에만 실행
  isPositive(number);
}

 

 

함수 isPositive(n)은 매개변수 n을 입력 받아, if-else 조건문을 사용하여 n이 양수, 음수, 또는 0인지를 판별합니다.

  • n이 0보다 크면 alert() 함수를 사용하여 "n은 양수입니다."라는 메시지를 출력합니다.
  • n이 0보다 작으면 alert() 함수를 사용하여 "n은 음수입니다."라는 메시지를 출력합니다.
  • n이 0이면 alert() 함수를 사용하여 "n은 0입니다."라는 메시지를 출력합니다.

그리고, const 키워드를 사용하여 number라는 변수를 선언하고, prompt() 함수를 사용하여 사용자로부터 입력을 받아 정수형으로 변환하여 number에 할당합니다. 이 때, parseInt() 함수를 사용하여 문자열을 정수로 변환합니다.

마지막으로, isNaN() 함수를 사용하여 number가 NaN이 아닌 숫자일 경우에만 isPositive(number) 함수를 호출합니다.

따라서 이 코드는 사용자가 숫자를 입력할 때마다, 그 숫자가 양수, 음수, 또는 0인지를 판별하여 메시지를 출력하는 함수를 실행하는 프로그램입니다.

 

실행되는 화면입니다.

 

문제 2)  2개의 숫자를 입력받아 두 수의 최대공약수를 구하는 함수를 작성하고 테스트해 보세요. 예를 들어 4와 12의 최대공약수는 4가 됩니다. 즉, 두 수 모두 니누어떨어지는 수 중에서 가장 큰 값이 최대 공약수입니다. 

function getGCD(n, m) {			//GCD는 최대공약수의 약자입니다.
  let max = n > m ? n : m;		//삼항 연산자 표현 방법입니다. n이 m보다 크면 n아니면 m
  let GCD = 0;
  for (let i = 1; i <= max; i++) {
    if (n % i === 0 && m % i === 0) {		//&&연산자는 양쪽 둘 다 true여야만 true입니다.
      GCD = i;   // 최대공약수
    }
  }
  return GCD;
}
document.write(`308과 20의 최대공약수 : ${getGCD(308, 20)}`);
document.write(`45과 38의 최대공약수 : ${getGCD(45, 38)}`);
  1. n과 m 중 더 큰 값을 max 변수에 저장합니다.
  2. GCD 변수를 0으로 초기화합니다.
  3. 1부터 max까지 반복문을 돌면서, n과 m 모두에서 현재 숫자 i로 나누어 떨어지는지 검사합니다.
  4. 만약 n과 m 모두에서 현재 숫자 i로 나누어 떨어진다면, GCD 변수에 i 값을 저장합니다.
  5. 반복문이 끝난 후, GCD 변수의 값을 반환합니다.

따라서 예시로 주어진 getGCD(308, 20)은 308과 20의 최대공약수를 구하는 것입니다. 이를 위해서 함수는 다음과 같이 동작합니다.

  1. max 변수에 308을 저장합니다.
  2. GCD 변수를 0으로 초기화합니다.
  3. 1부터 308까지 반복문을 돌면서, 308과 20 모두에서 현재 숫자 i로 나누어 떨어지는지 검사합니다.
  4. i가 4일 때, 308과 20 모두에서 나누어 떨어집니다. 따라서 GCD 변수에 4를 저장합니다.
  5. 반복문이 끝나면, GCD 변수의 값인 4를 반환합니다.

따라서 출력 결과는 308과 20의 최대공약수 : 4가 됩니다.

마찬가지로, getGCD(45, 38)은 45와 38의 최대공약수를 구하는 것입니다. 이를 위해서 함수는 다음과 같이 동작합니다.

  1. max 변수에 45을 저장합니다.
  2. GCD 변수를 0으로 초기화합니다.
  3. 1부터 45까지 반복문을 돌면서, 45과 38 모두에서 현재 숫자 i로 나누어 떨어지는지 검사합니다.
  4. i가 1일 때, 45과 38 모두에서 나누어 떨어지지 않습니다. 따라서 GCD 변수의 값인 0을 유지합니다.
  5. 반복문이 끝나면, GCD 변수의 값인 0을 반환합니다.

따라서 출력 결과는 45과 38의 최대공약수 : 0이 됩니다.

 

다음은 실행 화면 입니다.

728x90