본문 바로가기

개발일지/JavaScript + jquery

[js] 학점구하기 (조건문-Switch) & 숫자형과 문자형

2021.09.07 - [FrontEnd/JavaScript] - [js] 코드를 간단하게 쓰는 방법과 조건문(if, else if)

 

[js] 코드를 간단하게 쓰는 방법과 조건문(if, else if)

점수를 입력 받아 학점을 계산하는 문장이 있다. <메인에 쓰는 방법> Document 점수를 입력 받아 학점을 계산하는 문장이다. 등급을 뜻하는 grade 변수를 선언한다. prompt로 입력 받은 성

practice365.xyz

전 게시물에 이어서 ···

 

  <script>
	function ff(rr){
	 var grade = ""; /* null값 */
	 var ss = Number(prompt("성적입력"));
	 if(ss >= 90) grade="A";
		else if( ss >= 80 ) grade="B";
		else if( ss >= 70 ) grade="C"; 
		else if( ss >= 60 ) grade="D"; 
		else grade="F";
	 document.write("이름 : " + rr +"<br> 점수 : " + ss + "점<br>");
	 document.write("학점은 " + grade + "입니다.");
	}
  </script>

 

if와 else if가 많아 졌을 때 복잡하니까 Switch문을 쓰는 경우가 있습니다. 하지만 실제로는 if문이 더 자주 사용된다고 합니다. 그래도 기본으로 알고 있어야 하는 공식이라고 함!

<switch>

<!DOCTYPE html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <title>Document</title>
 </head>
 <body>
	<script>
		var ss = prompt("성적입력");
		switch(parseInt(ss/10)){
			case 10 : gg = "A"; break;
			case 9 : gg = "A"; break;
			case 8 : gg = "B"; break;
			case 7 : gg = "C"; break;
			case 6 : gg = "D"; break;
			default : gg = "F"; break;
			}
			document.write("학점은 " + gg + "입니다.");
	</script>
 </body>
</html>
학점은 B입니다.

var ss = prompt("성적입력"); 로 사용자의 성적을 받습니다.


parseInt()는 소수점 아래의 숫자를 없애는 역할을 합니다. ss로 입력을 받고 나누기 10을 했을 때 76점이라면 7.6이 됩니다. 그 때 parseInt()로 7점을 만들어 줍니다.


이 만든 숫자를 case 라고 합니다. case가 10이라면 100점이니까 A를 출력, 9까지도 A를 출력 순서대로 A~D까지 점수를 매기고 출력하는 겁니다. gg는 새로운 선언을 넣어준 것입니다.

 

default는 위의 case를 뺀 나머지를 출력합니다.

 

출력을 하고 나서 바로 switch문을 빠져나오도록 break;로 빠져나옵니다. 그래서 학점은 gg 입니다. 출력을 하는 겁니다.


자바에서 int char가 있듯 자바스크립트에서도 비슷한 공식이 있다. 
위의 예제에서 참고를 해서 보자면..

var ss = prompt("성적입력");

프롬프트 화면에서 입력 받은 숫자는 문자형이다. prompt는 문자형으로 읽어들이기 때문이다.

document.write("ss + 10 = " + (ss + 10));

 

억지로 넣은 수식이기는 하나 나중에 참고할 곳이 있을 것 같아서 적어둔다. (ss + 10); 이게 없을 때 출력을 하면 ss가 80이라고 할 경우 문자형이기 때문에 8010 이렇게 출력이 된다. 그런데 (괄호 안에) 넣어주면 숫자형으로 인식을 함

 

document.write("ss + 10 = " + (80 + ""));

그렇다면 반대로 숫자형인 80을 문자형으로 바꾸고 싶다면? (80 + "") 이렇게 써주면 문자형이 된다!