[JavaScript] STUDY 4 - 조건문

PSEveloper ㅣ 2020. 2. 4. 00:48

1. 조건문

 

1) 조건문

 

  • 조건(condition)에 따라서 여러 개의 실행 경로 가운데 하나를 선택
  • 조건(condition)이 참(true)인지 거짓(false)인지에 따라 다른 절차를 수행(분기)하는 제어문

 

   if (condition) conditional_code;      →  원래는 한 문장

   if (condition)

      conditional_code;    → 들여쓰기를 통해 이 문장이 if 구문에 묶인 문장임을 나타낸다.

 

예시1)

<script>

    var score = 86;
    
    if (score >= 60)
    	document.writeln("합격입니다!");
    // 변수 score에 저장된 값이 60이상인 경우 합격    

<script>

 

2) 복합문 (Compound statement)

 

  • 중괄호를 이용하여 문장들을 묶어 놓은 것
  • 블록(Block)이라고 한다.
  • 단일문 대신 들어갈 수 있다.

예시2)

<script>

    var score = 86;
    
    // 중괄호를 쓰지 않는 경우
    if (scroe >= 60)
    	document.writeln("합격입니다!");
        document.writeln("장학금을 받을 수 있습니다!")
	// 6번째 줄을 조건에 따라 수행되지만 7번째 줄은 조건에 상관없이 무조건 수행된다.
    
    // 복합문의 예시
    if (score >= 60) {
    	document.writeln("합격입니다!");
        document.writeln("장학금을 받을 수 있습니다!");
    }
    	
</script>

 

연습문제 1) 어떤 숫자가 20보다 크고 40보다 작은 경우 "Hello World!"출력

<script>

    var num = 31;
    
    // 잘못된 표현식
    if (20 < num < 40)
    	document.writeln("Hello World!");
        
    // 같은 비교 연산자가 2개이므로 왼쪽부터 연산이 시작된다.
    // 참고로 비교 연산자의 결과는 true 혹은 false인데 true는 1, false는 0의 결과 값을 가진다.
    
    // 1. 변수 num의 값이 20보다 작은 경우 (0 제외)
    //	1) 20 < num			→	결과: false(0)
    //	2) false(0) < 40		→	결과: true
    // 변수 num의 값이 20보다 작아도 "Hello World!"는 무조건 출력된다.
    
    // 2. 변수 num의 값이 40보다 큰 경우
    //	1) 20 < num			→	결과: true(1)
    //	2) true(1) < num		→	결과: true
    // 변수 num의 값이 40보다 커도 "Hello World!"는 무조건 출력된다.
    
    // 올바른 표현식
    if (num > 20 && num < 40)
    	document.writeln("Hello Wolrd!");

</script>

연습문제 2) 어떤 숫자가 10보다 작거나 50보다 큰 경우 "Hello World!" 출력

<script>

    var num = 63;
    
    if (num > 10 || num < 50)
    	document.writeln("Hello World!");

</script>

 

3) if-else 구문

 

  • 키워드 if 다음에 참(true) 또는 거짓(false)을 확인하기 위한 표현식(조건식)이 나온다.
  • if 또는 else 다음에는 문장 하나가 묶인다 - if 또는 else 다음에 여러 문장을 넣고자 하는 경우에는 블록으로 묶어줘야 한다.
  • else 절은 단독으로 나올 수 없다. 반드시 if 절과 같이 사용되어야 한다. - else 절은 이미 조건을 가지고 있다. if 다음에 나오는 표현식의 값이 거짓(false)인 경우!
  • else 다음에는 절대로 표현식이 나올 수 없다.

 

연습문제 3) 어떤 수가 홀수인지 짝수인지 출력하는 프로그램을 작성하라

 

<script>

    var num = 31;
    
    if (num % 2 == 0)
    	document.writeln(num + " is an even number.");
    else
    	document.writeln(num + " is an odd number.");
        
    // if 다음에 나오는 표현식은 참 또는 거짓을 따지는 표현식이다
    // 즉, 이 표현식의 연산 결과는 true 또는 false가 나와야 한다. 즉, boolean 자료형의 값이다.
    // 그런데 다른 자료형의 값이 나오는 경우 0이면 거짓(false), 0이 아니면 참(true)로 한다.
    
    if (!(num % 2))
    	document.writeln(num + " is an even number.");
    else
    	document.writeln(num + " is an odd number.");

</script>

 

4) 중첩 조건문

 

  • 조건문 안에 조건문을 중첩한 경우

   if (condition)

       if (condition)

           conditional_code;

       else

           condiional_code;

   else

       conditional_code;

 

예시)

<script>

    var num = 20;
    
    if (num < 10)
    	document.writeln("num is smaller than 10.");
    else
    	if (num > 20)
        	document.writeln("num is greater than 20.");
        else
        	document.writeln("num is between 10 and 20.");

</script>

 

5) if-eles-if 구문

 

  • 조건문의 else 블록에 조건문을 넣고 들여쓰기를 조정한 형태

   if (condition)

       coditional_code;

   else if (condition)

       conditional_code;

   else

       conditional_code;

 

예시)

<script>

    var num = 20;
    
    if (num < 10)
    	document.writeln("num is smaller than 10.");
        
    else if (num > 20)
        	document.writeln("num is greater than 20.");
        else
        	document.writeln("num is between 10 and 20.");

</script>

 

 

연습문제 1) 어떤 수가 양수, 0, 음수인지 확인하는 프로그램을 작성하라.

<script>

    var num = -10
    
    if (num > 0)
    	document.writeln(num + " is a positive number.");
    else if (num < 0)
    	document.writeln(num + " is a negative number.");
    else
    	document.writeln(num + " is zero.");

</script>

 

 

연습문제 2) 어떤 수가 아래 조건을 만족하면 지정한 값을 출력하는 프로그램을 작성하라.

            1. 3의 배수인 경우 : "Fizz" 출력

            2. 5의 배수인 경우 : "Buzz" 출력

            3. 3의 배수이고 5의 배수인 경우 : "FizzBizz" 출력

            4. 위 조건에 해당하지 않는 경우 : 숫자 그대로 출력

<script>

    var num = 15;
    
    // 풀이 (1)
    if (num % 3 == 0 && num % 5 == 0)
    	document.writeln("FizzBuzz");
    else if (num % 3 == 0)
    	document.writeln("Fizz");
    else if (num % 5 == 0)
    	document.writeln("Buzz");
    else
    	document.writeln(num);
    
    // if-else-if 구문을 이용해 조건을 확인할 때는 확인하는 조건의 순서도 중요하다!
    
    // 풀이 (2)
    if (num % 3 == 0 && !(num % 5 == 0))
    	document.writeln("Fizz");
    else if (num % 5 == 0 && !(num % 3 == 0))
    	document.writeln("Buzz");
    else if (num % 3 == 0 && num % 5 == 0)
    	document.writeln("FizzBuzz");
    else
    	document.writeln(num);

</script>