코리아 IT아카데미/Javascript·Jquery~~~

1일차 | 연산자, 조건문

Sharon kim 2021. 12. 1. 21:05

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>1_대입연산자</title>
    <!-- var를 사용하지 않는 이유
    1.같은 이름의 변수를 선언할 수 있음
    2. 지역변수와 전역변수의 구분이 없음
    3. 함수 안에 쓰일 때는 지역변수로 사용됨-->
</head>
<body>
    <h1>대입연산자</h1>
    <!-- var 변수명 = 5;
    res = res + 1; res += 1;
    res = res - 1; res -= 1;
    res = res * 1; res *= 1;
    res = res / 1; res /= 1;
    res = res % 1; res %= 1; -->

    <script>
        var res = 20;
        document.write("자바스크립트 예제");

        res += 10;
        document.write("<br>" + res);

        res -= 10;
        document.write("<br>" + res);

        res *= 10;
        document.write("<br>" + res);

        res /= 10;
        document.write("<br>" + res);

        res %= 10;
        document.write("<br>" + res);
</script>
</body>
</html>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>2_증감연산자</title>
</head>
<body>
    <h1>증감연산자</h1>
    <!-- 
        종류 ++, -- 1씩 증가, 감소

        전위 연산자 (계산 후 바로 값을 변수에 적용)
        var ++res, --res

        후위 연산자 (계산 후 바로 값을 적용하지 않고 다시 변수를 호출하거나 
                    다시 계산을 할 때는 이전에 연산된 후위연산자 값을 적용한다.)
        var res++, res--

        var res = 20;
        ++res(20 + 1 = 21)
        res++(20 + 1 = 20 나중에 호출할 떄 21)

        

     -->

    <script>

        a = 10;
        b = 20;
        c = 3;    

        document.write(++a + "<br>"); // 11
        document.write(a++ + "<br>"); // 11(12)
        document.write(c++ + "<br>"); // 3(4)
        document.write(++a + b++ + "<br>") //13 + 20(21)
        document.write(++a + ++b) //36


    </script>
</body>
</html>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>3_비교연산자</title>
</head>
<body>
    <h1>비교연산자</h1>
    <!-- 
        >:크다
        <:작다
        >=:크거나 같다
        <=: 작거나 같다
        ==: 같다 ('10' == 10는 true -> 타입이 달라도 값이 같으면 참)
        ===: 같다 ('10' === 10는 tfalse -> 타입과 값이 같아야 참)
        != : 다르다 (값만 같으면 false, 값이 다르면 true)
        !== : 다르다 (값, 타입 둘 중 하나만 다르면 true)
     -->

    <script>

        a = 10;
        b = 5;
        c = a > b; // 참인 상태
        str1 = "5"

        document.write(c + "<br>") //true

        c = a < b;
        document.write(c + "<br>") //false

        c = a != b;
        document.write(c + "<br>") //true

        c = b == str1
        document.write(c + "<br>") //true

        c = b === str1
        document.write(c + "<br>") //false

    </script>
</body>
</html>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>4_논리연산자</title>
</head>
<body>
    <h1>논리연산자</h1>
    <!-- 
       논리연산자는 주어진 논리식을 판단하여 참과 거짓을 반환합니다.
    
    and (&&) 연산
    두 논리식 모두 참이면 참을 반환하는 연산자

     true  true  ture
     ture false false
    false  true false
    false false false

    or(||) 연산
    두 논리식 중 하나라도 참이면 참을 반환하는 연산자
    
    not(!) 연산자 
    논리식의 결과가 참이면 거짓으로, 거짓이면 참으로 변환하는 연산자
    
    true -> false
    false -> true

    삼항연산자
    조건식에 따른 참, 거짓에 따라 반환값이 달라지는 연산자
                        true   false
                       ------  ------
    변수(상수) = 조건식? 결과1 : 결과2
                -------
                true 또는 false
        var a = 20;
        var b = 10;    
        var max = a > b ? c = "true" : c = "false";
        document.write(c)
    -->


    <script>

        a = "10";
        b = "10";

        c = a < b && a == b
        document.write(c + "<br>");

        c = a < b || a == b
            document.write(c + "<br>");


    </script>
</body>
</html>

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=, initial-scale=1.0">
    <title>if_01</title>
</head>
<body>
    <script>
        'use strict'//자바스크립트를 엄격하게 문법을 입력하겠다고 선언
        
        const age = Number(prompt('나이를 입력하세요'));
        // if(age > 19){
        //     document.write("성인입니다.");
        // }//else{document.write("미성년입니다.")
        //}

        if (age > 19) document.write("성인입니다.");

        //const age2 = age > 19 ? document.write("성인입니다.") : document.write("미성년입니다.")
    </script>
</body>
</html>

        'use strict'
        //if_02
        const blood = prompt('혈액형을 입력하세요') // A B O AB
        const type = prompt('RH+ 또는 RH- 를 선택하세요'); // + -
        //당신의 혈액형은 a형이며 타입 RH+ 입니다.
        
        //선행 처리 알려 주기 위해 전부 if문
        // if(blood = "A"){
        //     if(type == "+"){
        //         document.write("당신의 혈액형은 A형이며 타입은 RH+입니다");
        //     }
        //     if (type == "-") {
        //         document.write("당신의 혈액형은 A형이며 타입은 RH-입니다");
        //     }
        // }
        // if (blood = "B") {
        //     if (type == "+") {
        //         document.write("당신의 혈액형은 B형이며 타입은 RH+입니다");
        //     }
        //     if (type == "-") {
        //         document.write("당신의 혈액형은 B형이며 타입은 RH-입니다");
        //     }
        // }
        // if (blood = "O") {
        //     if (type == "+") {
        //         document.write("당신의 혈액형은 O형이며 타입은 RH+입니다");
        //     }
        //     if (type == "-") {
        //         document.write("당신의 혈액형은 O형이며 타입은 RH-입니다");
        //     }
        // }
        // if (blood = "AB") {
        //     if (type == "+") {
        //         document.write("당신의 혈액형은 AB형이며 타입은 RH+입니다");
        //     }
        //     if (type == "-") {
        //         document.write("당신의 혈액형은 AB형이며 타입은 RH-입니다");
        //     }
        // }

                if (blood == "A") {
                        if (type == "+") {
                            document.write("당신의 혈액형은 A형이며 타입은 RH+입니다");
                        }else{
                            document.write("당신의 혈액형은 A형이며 타입은 RH-입니다");
                        }
                    }else if (blood == "B") {
                        if (type == "+") {
                            document.write("당신의 혈액형은 B형이며 타입은 RH+입니다");
                        } else{
                            document.write("당신의 혈액형은 B형이며 타입은 RH-입니다");
                        }
                    }else if (blood == "O") {
                        if (type == "+") {
                            document.write("당신의 혈액형은 O형이며 타입은 RH+입니다");
                        } else{
                            document.write("당신의 혈액형은 O형이며 타입은 RH-입니다");
                        }
                    }else if (blood == "AB") {
                        if (type == "+") {
                            document.write("당신의 혈액형은 AB형이며 타입은 RH+입니다");
                        }else{
                            document.write("당신의 혈액형은 AB형이며 타입은 RH-입니다");
                        }
                    }

        'use strict'
        //switch_01
        const num = prompt('번호를 선택하세요')

        switch(num){
            case "1" :
                document.write('예금 조회를 선택하셨습니다.');
                break;
            case "2" : 
                document.write('예금 출금을 선택하셨습니다.');
                break;
            case "3":
              document.write('예금 입금을 선택하셨습니다.');
                break;
            case "4":
                document.write('예금 이체를 선택하셨습니다.');
                break;    
            default : 
                 document.write('번호를 잘못 누르셨습니다.');
        }
        // switch문
        // switch문은 주어진 조건값에 따라 프로그램이 다른 명령을 수행하도록 하는 조건문

        // switch(변수 또는 상수){
        //     case 값1: 
        //     변수 또는 상수의 값이 값 1과 일치할 경우 실행할 문장;
        //     break;
        //     case 값2 : 
        //     변수 또는 상수의 값이 값 2와 일치할 경우 실행할 문장;
        //     default : 
        // }

 'use strict'
 //switch_02
        var Menu;
        Menu = prompt('menu choice');

        switch(Menu){
            case 'p':
            case 'P': document.write('Pizza를 주문하셨습니다.');break;

            case 's':
            case 'S': document.write('Spaghetti를 주문하셨습니다.'); break;

            case 'r':
            case 'R': document.write('Risotto를 주문하셨습니다.'); break;

            case 'd':
            case 'D': document.write('Drink를 주문하셨습니다.'); break;

            default:
                document.write('메뉴에 없습니다.');
        }

'use strict'
//switch_03
        let input = prompt('아동, 청소년, 성인 중 선택을 하세요.');

        switch(input){
            case '아동':
                input += " : 입장료 무료"
                break;
            case '청소년':
                input += " : 입장료 2000원"
                break;
            case '성인':
                input += " : 입장료 5000원"
                break;

            default: 
                alert('입력값을 확인하세요');
                input = '입력값을 확인하세요';
        }

        document.write(input);

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=, initial-scale=1.0">
    <title>제어문, 비교문</title>
</head>
<body>
    <h1>제어문</h1>

    <!--
        
    1.조건문 
    프로그램 내에서 주어진 조건문의 결과에 따라 별도의 명령을 수행하도록 제어하는 실행문

    -if 문
    -switch 문

    2.반복문
    프로그램 네에서 같은 명령을 일정 횟수만큼 반복하여 수행하도록 제어하는 실행문

    -while 문
    -for 문

        if(조건식){
            실행문;
        }
-------------------------------------------
        if(조건식){
            조건식이 참일 때 실행문1;
        }else{
            조건식이 거짓일 때 실행문2;
        }
-------------------------------------------  
        if(조건식){
            조건식1이 참일 때 실행문1;
        }else if{
            조건식2가 참일 때 실행문2;
        }else if{
            조건식3이 참일 때 실행문2;
        }else{
            모든 조건식이 거짓일 때 실행문2;
        }
    -->

    <script>
    //     var a = 10;
    //     var b = 20;
    // document.write("a = 10 ,b = 20일때 누가 더 큰가 <br>");
    //     if(a > b){
            
    //         document.write(a + "값이 더 큽니다.");
    //     }else{
    //         document.write(b + "값이 더 큽니다.");
    //     }

    var score;
    score = prompt("점수를 입력해주세요");
    //90 80 70 60 
    if(score >= 90){
        document.write("A")
    }else if(score >= 80){
        document.write("B")
    }else if(score >= 70) {
        document.write("C")
    }else if(score >= 60){
        document.write("D")
    }else{
        document.write("F")
    }
    </script>
</body>
</html>

        'use strict'
        //성적관리 프로그램
        var name = prompt('이름을 입력하세요');
        var kor = Number(prompt('국어점수를 입력하세요')); 
        var eng = Number(prompt('영어점수를 입력하세요'));
        var math = Number(prompt('수학점수를 입력하세요'));


        var total = kor + eng + math;
        var avg = total / 3;

        //${변수명} -> 하나의 객체로 
        document.write(`<h2>${name}님의 성적표</h2>`);
        document.write(`<p>국어성적 : ${kor}</p>`);
        document.write(`<p>영어성적 : ${eng}</p>`);
        document.write(`<p>수학성적 : ${math}<p>`);
        document.write(`<p>총점 : ${total}</p>`);
        document.write(`<p>평균값 : ${avg}</p>`);

        'use strict'
        //성적관리 프로그램2
        const name = prompt('이름을 입력하세요');
        const kor = Number(prompt('국어점수를 입력하세요')); 
        const eng = Number(prompt('영어점수를 입력하세요'));
        const math = Number(prompt('수학점수를 입력하세요'));
        const total = kor + eng + math;
        const avg = total / 3;
        let hakjum = "";

        //학점의 기준 90 80 70 60
        if(avg >= 90){
            hakjum = "A";
        }else if(avg >= 80) {
             hakjum = "B";
        } else if (avg >= 70) {
            hakjum = "C";
        } else if (avg >= 60) {
            hakjum = "D";
        }else{
            hakjum = "F";
        }

        //${변수명} -> 하나의 객체로 
        document.write(`<h2>${name}님의 성적표</h2>`);
        document.write(`<p>국어성적 : ${kor}</p>`);
        document.write(`<p>영어성적 : ${eng}</p>`);
        document.write(`<p>수학성적 : ${math}<p>`);
        document.write(`<p>총점 : ${total}</p>`);
        document.write(`<p>평균값 : ${avg}</p>`);
        document.write(`<p>학점 : ${hakjum}</p>`);

'use strict'
//성적관리 프로그램3(switch)
        const name = prompt('이름을 입력하세요');
        const kor = Number(prompt('국어점수를 입력하세요')); 
        const eng = Number(prompt('영어점수를 입력하세요'));
        const math = Number(prompt('수학점수를 입력하세요'));
        const total = kor + eng + math;
        const avg = total / 3;
        let hakjum = "";

        //학점의 기준 parseInt(학점 / 10) 
        //10 9 / 8 / 7 / 6 나머지 F
        switch(parseInt(avg / 10)){
            case 10:
            case 9:
                hakjum = 'A학점';
                break;
            case 8 :
                 hakjum = 'B학점';
                break;
            case 7:
                hakjum = 'C학점';
                break;
            case 6:
                hakjum = 'D학점';
                break;

            default :
                hakjum = 'F학점';

        }

        //${변수명} -> 하나의 객체로 
        document.write(`<h2>${name}님의 성적표</h2>`);
        document.write(`<p>국어성적 : ${kor}</p>`);
        document.write(`<p>영어성적 : ${eng}</p>`);
        document.write(`<p>수학성적 : ${math}<p>`);
        document.write(`<p>총점 : ${total}</p>`);
        document.write(`<p>평균값 : ${avg}</p>`);
        document.write(`<p>학점 : ${hakjum}</p>`);

        'use strict'
        //암시적 타입변환
        const a = 10 + '문자열'; // +(합성), 숫자 + 문자 = 문자열 데이터 변수
        console.log(a);

        const b = "3" * "5"; // 숫자 모양 문자열을 연산하면 숫자형으로 변환
        console.log(b);

        const c = 10 - "문자열" // 숫자로 인식
        console.log(c);

        const d = "10" - 20; // 숫자 모양 문자열을 연산하면 숫자형으로 변환
            console.log(d);