
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>