자바스크립트 - 연산자 응용 문제

이번에는 자바스크립트에서 연산자를 응용하여 문제를 하나 풀어보겠습니다.

===================================================
[문제]
1) prompt()를 이용해 신장과 몸무게를 입력 받는다.
2) 적정 체중을 구한 뒤 사용자가 입력한 몸무게가 적정 몸무게 이상일 경우
는 “과체중”, 적정 몸무게 미만일 경우는 “체중 미달”, 적정 몸무게일 경우는
“몸짱”을 출력하세요.
※ 삼항 연산자 또는 if~ else if 문을 사용해 보세요

적정체중 : 신장에서 100을 뺀 값의 90%
===================================================

오늘 이 문제를 처음 풀었는데, 전에 자바를 배운게 있고

자바스크립트와 자바가 크게 문법 차이가 나는 것이 아니여서 많이 어렵지 않았습니다.

일단 이 문제를 풀기 위해서 반드시 알아야 할 코드를 적겠습니다.



위와 같은 창 화면을 prompt 라고 하는데, 이것을 사용하기 위해서는

window.prompt("당신의 이름은?", 홍길동); <-- 이 문장을 알아야합니다.

prompt 첫번째 매개 변수는 prompt의 사용자가 정의 할 수 있는 문장이고

두번째 매개 변수는 사용자가 입력하는 공란에 기본값입니다.

이 부분은 딱히 정의하지 않아도 됩니다.


문제에서 신장과 몸무게를 입력받는 부분은 아래와 같은 방식으로 구현합니다.

avg_height 라는 변수는 적정 체중으로 자신의 키(height)에서 100을 뺀 값에 0.9를

곱합니다.


이후에 사용자가 입력한 몸무게와 적정 체중을 비교하는 것은 

자바에서 if~else if문과 똑같습니다.


변수 weight는 저의 체중이고, avg_weight는 적정 체중입니다.

이 값이 같냐, 더 크냐, 더 작냐로 분류하고 출력하면 됩니다.

자바스크립트에서는 document.write로 출력하고

그 안에 html에서 쓰이는 <h1> 태그 등을 " " 로 묶어서 사용합니다.



위의 그림은 저 위에 길게 나열한 if~else if문을 간결하게 줄인 삼항 연산자입니다.

조건연산자(3항연산자)
- 조건에 따라 두 값 중에 하나를 연산결과로 전달
- 형식 : (조건) ? 변수1 : 변수2
– 조건인 참이면 앞 문장 수행, 거짓이면 뒷 문장 수행

보통 하나의 if문에서 True, false 두 가지 값만 딱 나오는 상황에서 삼항 연산자를 구현 못할거라 생각하지만, 변수2에 조건을 넣는다면 다중 if문으로 충분히 삼항 연산자화 시킬수 있습니다.

- 형식 : (조건) ? 변수1 : 변수2

var str= (weight==avg_height) ? "적정 체중" : (weight>avg_height)? : "과체중" : "체중 미달";

삼항연산자의 결과는 변수 str로 넣고



그 결과는 알람 메시지로 출력합니다.

중요한 소스이니 자기꺼로 소화시켜야합니다~!!

혹시 풀 소스가 필요한 분들은 저에게 댓글을 남겨주시면 보내드리겠씁니다~!

댓글 없음:

댓글 쓰기