JAVASCRIPT

마무리 문제풀이 2

hyejeong3283 2023. 3. 1. 18:20
728x90
반응형

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

 

let usernumber = prompt("숫자를 입력하세요");
let chkNum  = parseInt(usernumber); //1. 화면에서 입력받은 값을 parseInt 함수를 통해 숫자로 변환 후 chkNum 변수에 저장
if(isNaN(chkNum)){                  //2. 변환한 변수 chkNum 의 값이 숫자가 아니면 NaN을 반환하므로 NaN 값을 체크
  alert("숫자가 아닙니다");         //숫자가 아닌 값이 입력된 경우
}else{                              //3. 정상적인 값인 경우 양수,음수,0 인지 확인하는 로직 실행
  fnChkNum(chkNum);
}

function fnChkNum(chkNum){
    if(chkNum > 0){//양수인 경우
     alert(usernumber+"은 양수입니다.");
  }else if(chkNum < 0){//음수인 경우
    alert(usernumber+"은 음수입니다.");
  }else if(chkNum == 0){//0인 경우
    alert(chkNum+"을 입력하셨습니다.");
  }
}

 

풀이

1. 화면에서 입력받은 값을 숫자로 변환하는 parseInt를 사용하여 숫자로 변환 (입력받은 값이 숫자가 아니면 NaN을 반환)

2. 변환한 값이 NaN인지 확인하는 함수를 통해 체크

3. NaN이면 '숫자가 아닙니다' 알림창 호출 , 숫자면 양수, 음수, 0인걸 판단하는 함수 실행

 

2. 두 수의 최대공약수 구하기 : 두개의 숫자를 입력받아 두 수의 최대공약수를 구하는 함수를 작성하고 테스트해보세요.

 

    //최대공약수 
    function EFG(a,b){
        //변수선언 : 데이터 저장
        let maxNo  = 0;
        let correct = 0;

        //데이터 변경
        if(a > b){
            maxNo = a;
        }else{
            maxNo = b;
        }

        //최대값만큼 for문 실행
        for(let i = 1; i <= maxNo; i++){
            //두 값을 나눴을때 둘 다 0으로 떨어지는 경우 최대공약수 변수에 값을 저장
            if(a%i==0 && b%i==0){ 
                correct = i; //최대공약수 값 저장 실행
            }

        }

        //반환해주는 값
        return document.write("입력받은 두 수의 최대공약수는 : "+ correct + "입니다.<br>");
    }


    EFG(28,68); //입력받은 두 수의 최대공약수는 : 4입니다.
    EFG(55,100); //입력받은 두 수의 최대공약수는 : 5입니다.

풀이

1. 입력받은 두 값을 비교 후 큰 값을 maxNo 에 저장합니다.

2. maxNo의 값만큼 반복문을 실행하며 반복문 안에 있는 두 조건의 값을 모두 충족한 값을 correct 변수에 저장합니다.

**** correct 변수에는 최종적으로 if  문 조건의 충족하는 마지막값을 저장합니다.