본문 바로가기
Front-End/JavaScript

자바스크립트 예제 (2)

by newny 2023. 2. 9.
반응형

1. 산술연산자 활용하기

1-1) 각 지폐갯수를 구해서 표작성해서 본문 id=demo에 출력하시오.

[결과]

[코드]

자바스크립트는 숫자의 기본타입이 실수값이기때문에 money/10000를 그대로 연산시키면 소수점이 나올것같아서 parseInt() 를 사용했다.

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>02_지폐갯수.html</title>
</head>
<body>
    <div id="demo"></div>

    <script>
        let money=54320;
        let tenThousand = parseInt(money/10000);
        let thousand = parseInt(money%10000/1000);
        let hundred = parseInt(money%1000/100);
        let ten =  parseInt(money%100/10);        
        
        let result = "";
        result = result + "<table border='1'>";

        result = result + "<tr>";
        result = result + "<td>만원</td>";
        result = result + "<td>" + tenThousand + "장</td>";
        result = result + "</tr>";

        result = result + "<tr>";
        result = result + "<td>천원</td>";
        result = result + "<td>" + thousand + "장</td>";
        result = result + "</tr>";

        result = result + "<tr>";
        result = result + "<td>백원</td>";
        result = result + "<td>" + hundred + "장</td>";
        result = result + "</tr>";

        result = result + "<tr>";
        result = result + "<td>십원</td>";
        result = result + "<td>" + ten + "장</td>";
        result = result + "</tr>";

        result = result + "</table>"

        document.getElementById("demo").innerHTML = result;
    </script>
    
</body>
</html>

2. if / else-if문 활용하기

2-1) 평균 95점이상이면 장학생을 출력하시오.

[코드]

if (aver>=95) {
  document.write("<span style='color:red;font-weight:bold'>장학생</span>");
}

2-2) 국어점수가 70점이상이면 합격, 아니면 불합격을 출력하시오.

[코드]

if (kor>=70) {
  document.write("합격")
} else {
  document.write("불합격")
}


→ 삼항연산자도 이용해보았다.

document.write(kor>=70 ? "합격" : "불합격");

2-3) 수학점수가 90점이상이면 "A" , 80점이상이면 "B" , 70점이상이면 "C" , 60점이상이면 "D" , 60점미만이면 "F" 를 출력하시오.

[코드]

if (mat>=90) {
  document.write("A")
} else if (mat>=80) {
  document.write("B")
} else if (mat>=70) {
  document.write("C")
} else if (mat>=60) {
  document.write("D")
} else {
  document.write("F")
}

2-4) 평균이 70점 이상이면 합격을 출력, 70점 미만이면 탈락을 출력하시오. (단, 평균이 70점 이상이더라도 세 과목중 한 과목이라도 40점 미만이면 재시험이라고 출력하시오.)

[코드]

→ 위에가 내가 푼 방식이고, 아래는 강사님이 풀어주신 풀이이다. 사람들마다 풀이 방식이 달라서 신기했다. 아래의 풀이가 더 좋아보인다.

if (aver>=70 && kor>=40 && eng>=40 && mat>=40) {
  document.write("합격")
} else if (aver<70) {
  document.write("탈락")
} else {
  document.write("재시험")
}
if(aver>=70) {
  if(kor<40 || eng<40 || mat<40) {
     document.write("재시험")
  } else {
     document.write("합격")
  }
} else {
  document.write("탈락")
}

3.switch문 활용하여 문제풀기

3-1) 평균점수에 따라서 A, B, C, D, F 학점을 출력하시오.
→ 풀이 방법이 전혀 떠오르지 않아서 강사님 풀이방법을 보고 따라했다.

let kor=10, eng=10, mat=10;
let aver=parseInt((kor+eng+mat)/3);

switch (parseInt(aver/10)) {
    case 10 :
    case  9 : document.write("A"); break;
    case  8 : document.write("B"); break;
    case  7 : document.write("C"); break;
    case  6 : document.write("D"); break;
    default : document.write("F"); break;
}

3-2) 정수 i값, j값이 주어질 때 연산기호(op)를 지정함에 따른 결과값을 출력하시오.

let i=3, j=5;
let op="*";

switch (op) {
    case "+": document.write(i+j); break;
    case "-": document.write(i-j); break;
    case "*": document.write(i*j); break;
    case "/": document.write(i/j); break;
}


→ 오늘배운 eval함수 써먹어보기

let result = eval(i+op+j);
document.write(result);

eval 함수란 무엇인지 궁금해서 찾아보았다.

eval 함수란?

전역 객체의 함수 속성이며, 인자로 받은 코드를 caller의 권한으로 수행하는 위험한 함수이다.
악의적인 영향을 받았을 수 있는 문자열을 eval함수로 실행한다면, eval함수를 사용한 웹페이지나 확장 프로그램의 권한으로 사용자의 기기에서 악의적인 코드를 수행하는 결과를 초래할 수 있다.
그렇기때문에 웹페이지를 만들때는 eval함수를 절대 사용하지 말것!

→ 알고리즘 코딩문제 풀때만 써야겠다.


3-3) 주민번호를 이용해서 나이와 성별을 출력하시오.
→ 진도상 문자 추출은 배우지 않았기 때문에 추출했다고 가정한 후 문제풀이 진행, 올해 연도도 값 지정하여 진행

let myYear=parseInt("19"); //태어난 년도
let myCode=parseInt("4");  //성별코드

switch (myCode) {
    case 1:
    case 2: myYear=myYear+1900; break;
    case 3:
    case 4: myYear=myYear+2000; break;
}

let myAge=2023-myYear;
document.write("나이: " + myAge);

switch (myCode) {
    case 1:
    case 3: document.write(", 성별: 남자"); break;
    case 2:
    case 4: document.write(", 성별: 여자"); break;
}

→ 문자추출, Date객체 이용하여 문제풀이하기

let String = "1912304234567";
let myYear = parseInt(String.substr(0,2)); // 인덱스 0번부터 2개의 문자추출
// myYear=parseInt(String.substring(0,1)); // 인덱스 0~1까지 추출
let myCode = parseInt(String.charAt(6)); // 6번 인덱스 문자 한개 추출하기

switch (myCode) {
    case 1:
    case 2: myYear = myYear+1900; break;
    case 3:
    case 4: myYear = myYear+2000; break;
}

let date = new Date();
let myAge = date.getFullYear() - myYear;
document.write("나이: " + myAge);

switch (myCode) {
    case 1:
    case 3: document.write(", 성별: 남자"); break;
    case 2:
    case 4: document.write(", 성별: 여자"); break;
}

반응형

'Front-End > JavaScript' 카테고리의 다른 글

JavaScript(3)  (0) 2023.02.13
JavaScript(2)  (0) 2023.02.09
자바스크립트 예제 (1)  (0) 2023.02.08

댓글