필요없는 목록/JAVASCRIPT

변수, 객체, 조건문을 활용한 예제(2)

비밀안 2023. 2. 28. 17:08
클릭

버튼을 클릭하면 명언이 나와요

-

이름이 나와요

1. 사용자에게 입력 받은 것들을 숫자면 양수, 마이너스면 음수, 글씨는 문자열로 출력하기

수업시간에 배운 변수, 상수, 조건문, 함수를 사용하여 만들었습니다.

처음에는 힌트로 prompt를 사용하라는 말을 듣고 당황했습니다. 어떻게 양수, 음수, 문자열을 비교할까??

20분 정도 고민해보니간....

0보다 작으면 음수고. 0보다 크면 양수잖아??? 라고 생각이 갑자기 들어서 

조건문을 걸어서 실행해보니 출력이 되었습니다.

//사용자로부터 값을 입력 받습니다.
let user = prompt("숫자를 입력하세요");
//입력 받은 값을 정수로 변환합니다.
let number = parseInt(user);

//if문의 조건이 만족되면 매개변수로 값을 받고 반환 중입니다.
function func(a) {

    return a;
}

//입력 받은 값을 계산 후 alert로 띄웁니다.
if(number > 0 ){
    alert(func(number) + "은 양수입니다.");
}
else if(number < 0){
    alert(func(number) + "은 음수입니다.");
}
else {
    alert(func(number) + "은 문자열입니다.");
}

해결방법

  • 사용자로부터 값을 입력 받습니다.
  • 입력 받은 값을 parseInt()를 통해서 숫자로 변환합니다.
  • if문으로 숫자로 변환 한 값이 "0이상이면 양수", "0이하면 음수", "그외에는 문자열"로 출력합니다.
  • 그리고 함수에 매개변수로 전달하여 값을 반환 합니다.
  • 그리고 alert로 최종적인 창을 띄웁니다.

 

2.두개의 숫자를 입력 받아서 최대공약수를 구하는 예제입니다.

최대공약수를 구하라는 미션을 받았습니다. 최대 공약수는 두수를 나눠서 나머지를 곱하는 거였습니다.

아무리 머리를 굴려봐도 조건문과 나눗셈을 계산해봐도 생각이 안났습니다.

혹시하는 생각에 나머지를 넣으니간 작동이 되었습니다.( let result = (값1 % 값2); )

하지만...

어떤것은 정상적으로 최대공약수를 구해내고. 어떤것은 최대공약수를 못 구해냈습니다.

이것저것 고민해봐도 %로 햇을때. 나누기 2를 해봤습니다. ( let result = (값1 % 값2) / 2; )

이것또한 작동 될때가 있고 안될때가 있더라고요.

그래서 자바스크립트 관련해서 명령어를 찾던 중 수학과 관련된 Math가 있어서 적용을 해봤습니다.

//사용자로부터 각각 1번씩 숫자를 입력 받습니다
let number1 = prompt("첫번째 숫자 1개를 입력해주세요");
let number2 = prompt("두번째 숫자 1개를 입력해주세요");

//입력받은 숫자를 parseInt()를 통해 정수형(숫자)으로 출력합니다.
let a1 = parseInt(number1);
let a2 = parseInt(number2);

function func(name1, name2) {
  let max = Math.max(name1, name2); // 두개의 값 중 큰수를 찾습니다.
  let min = Math.min(name1, name2); // 두개의 값 중 작은수를 찾습니다.
  let result = max % min;           // 작은수와 큰수 두개의 나머지를 구합니다.
  
  if (result === 0) {                 
    return min;      	 		// 두개의 나머지가 0이면 최대공약수를 출력합니다.
  }else{
    return func(min, result); 		// 나머지가 0이 아니면, 작은 수와 나머지 값으로 다시 함수 실행
  }
}

//함수에 입력받은 매개변수 2개를 넣어주고 출력을 해줍니다.
document.write(func(a1, a2));

해결방법

  • 먼저 prompt로 정수를 1개 입력받고. 그 다음에 1개를 입력 받았습니다.
  • 그뒤 parseInt()를 통해서 정수형(숫자)로 변환하여 값을 저장하였습니다.
  • 함수를 생성하여 매개변수로 2개의 값을 전달합니다.
  • 함수 안에는 두개의 값의 최대수와 최소값을 구하고.
  • 2개의 값을 나머지로 구해서 result에 저장합니다.
  • 그리고 result가 0이면 최소값을 출력하고
  • 그게 아니라면 다시 반복하여 실행을 하게했습니다.