===================================================
[문제]
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로 넣고
그 결과는 알람 메시지로 출력합니다.
중요한 소스이니 자기꺼로 소화시켜야합니다~!!
혹시 풀 소스가 필요한 분들은 저에게 댓글을 남겨주시면 보내드리겠씁니다~!
댓글 없음:
댓글 쓰기