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 문 조건의 충족하는 마지막값을 저장합니다.