JavaScript

[Do it] Javascript 도전 미션 - 2

동띠기 2020. 3. 25. 14:38
728x90

02.

질의응답 창을 이용하여 4분기 판매량을 입력하고, 전 분기 평균 판매량보다 판매량이 높거나 같을 경우에는 '판매량이 평균 이상입니다.' 라고 출력하고, 낮을 경우에는 평균 미달입니다. 라고 화면에 출력하세요.

(사진이 없지만 1분기 : 1200 / 2분기 : 1300 / 3분기 : 1000 입니다.)

 

=== 풀 이 ===

 

일단 1~3분기에 있는 값과 4분기의 값을 넣기 위해서 다른 풀이와는 조금 다르게 저는 배열을 사용하였습니다.

 

var quarter = [1200,1300,1000,null];

quarter이라는 배열 인덱스 기준 3번째에 null 값으로 비워두고 나머지는 1~3분기 액수를 채웠습니다.

 

그리고 1~3분기 모든 값의 평균 판매량을 알기 위해 평균값을 구해줍니다.

var avg = (quarter[0] + quarter[1] + quarter[2]) / 3;

결론적으로 avg 에는 (1200 + 1300 + 1000) / 3 의 값이 저장됩니다.

 

그리고 4분기를 입력받습니다.

quarter[3] = prompt("4분기 판매량을 입력하세요", "0");

 

이제 조건을 분석합니다. 계산을 해보면 avg = 1166.666666666667 이 나옵니다. 

그럼 quarter[3] 의 입력값이 1166.666666666667 보다 크면 평균이상을 출력하고, 그 이하라면 평균미달이라고 표시하면 되겠군요.

 

하지만 조건을 보면 판매량이 높거나 같을 경우에는 '판매량이 평균 이상입니다.' 라고 출력 이라는 조건이 있습니다.

만약 1~3분기 판매량도 소수점이고, 4분기 입력값도 소수점이라면 ??? 계산할 수 있지만 지금은 모두 정수형이라는 가정하에 진행하였습니다.

 

소수점으로 입력될 수 있는 결과와 입력값 모두를 방지하기 위해 이 부분도 형변환 시키겠습니다.

 

먼저

avg 가격을 인트형으로 변환합니다. 인트형은 소수점 뒷자리는 버림 처리합니다. 그럼으로 avg 가격은 1166 이 됩니다.

var avg = parseInt((quarter[0] + quarter[1] + quarter[2]) / 3);

 

그후 입력되는 4분기 값을 소수점을 사라지게 하기 위해 동일하게 인트형으로 변환합니다.

quarter[3] = parseInt(prompt("4분기 판매량을 입력하세요", "0"));

 

그 후 비교를 시작합니다.

if(quarter[3] >= avg){
            document.write("판매량이 평균 이상입니다.");
        }else{
            document.write("판매량이 평균 미달입니다.");
        }

 

728x90

'JavaScript' 카테고리의 다른 글

템플릿 문자열  (0) 2020.08.25
Javascript 내장객체  (0) 2020.03.27
[Do it] Javascript 반복문 ( 구구단 출력 )  (2) 2020.03.26
[Do it] Javascript 도전 미션 - 1  (0) 2020.03.25
자바스크립트 기초문법 ( 변수 )  (0) 2020.03.25