if 문
가장 기본적인 조건문으로 0을 제외한 모든 숫자와 문자를 조건식에 넣으면 전부 참(true)인 결과를 출력한다.
빈 배열 [ ]을 넣어도 결과는 true가 된다.
데이터에 값이 없으면 false가 된다.
0 외에도 거짓(false)가 되는 것들로는 null, undefiend, false(불린), " "(빈 문자열)이 있다.
형식
if (조건식) { 실행문 } |
ex)
if(0) {
document.write("실행되었습니다 (true)");
} else {
document.write("실행되었습니다 (false)");
} //조건식에 0을 넣었으므로 이 예제의 결과는 false가 된다.
실행되었습니다 (false)
if문 생략
if문을 생략하여 간결한 코드를 작성하는 것을 조건 표현식이라고 한다.
조건 표현식이 if를 대체할 수는 없으므로 간단한 코드인 경우에 한하여 사용하는 것이 좋다.
간단한 조건 검사후, 반환값을 바로 대입하여 한 줄로 표현할 수 있다.
ex)
if(num) document.write("실행되었습니다(ture)")
else document.write("실행되었습니다(false)")
실행되었습니다 (true)
삼항 연산자
세 항으로 줄였기 때문에 삼항 연산자라고 부른다. (조건 연산자라고도 함.)
기존 if문이 실행문을 두 번 읽어들이기 때문에 식이 길어질수록 결괏값 출력이 느리고 데이터의 용량 차지가 크다는 단점을 보완하여 나오게 되었다.
첫번째 실행문만 읽어들여 결괏값의 출력이 빠르고 효율적이라는 장점이 있다.
형식
조건 ? 참(true)인 경우의 if 값 : 거짓(false)인 경우의 if 값; |
ex)
(num == 100) ? document.write("True") : document.write("false");
True
다중 if 문
여러 개의 조건문(if)를 사용하여 여러 조건을 검사할 수 있기 때문에 복잡한 조건문을 처리할 수 있다.
형식
if (조건식1) { if(조건식2) { 실행문; } } |
ex)
const num = 100;
if(num === 90) {
document.write("실행되었습니다(num == 90)");
} else if(num === 100) {
document.write("실행되었습니다(num == 100)");
} else if(num === 110) {
document.write("실행되었습니다(num == 110)");
} else if(num === 120) {
document.write("실행되었습니다(num == 120)");
} else {
document.write("실행되었습니다");
}
실행되었습니다(num == 100)
등호 (=) 2개는 값만 같으면 true(참)으로 인식하지만 3개(===)는 데이터 타입도 같아야 참(ture)이 된다.
값이 문자(ex. "100")인지 숫자(100)인지도 구분한다는 것이다.
그렇기에 같은 100이라도 데이터 타입이 다르면 false로 인식한다.
결괏값이 정확하고 한 치의 오차도 없기를 바란다면 ===를 쓰는 것이 좋다.
중첩 if문
:조건문(if) 안에 또 다른 조건문 (if)를 포함하여 더욱 복잡한 조건을 만족시킬 때 사용한다.
겉에 있는 조건문과 안에 포함 된 조건문이 모두 참(ture)일 때 실행문이 출력된다.
조건1은 일치하더라도 조건 2가 일치하지 않으면 실행되지 않는다.
가독성이 떨어지고 복잡하기 때문에 꼭 필요한 경우에만 사용하는 것이 좋다.
형식
if (조건1) { if (조건2) { 조건 1과 조건 2가 모두 참(true)일 때 실행되는 명령 } } |
ex)
const num = 100;
if(num == 100) {
document.write("실행되었습니다(1)");
if(num == 100) {
document.write("실행되었습니다(2)");
}
if(num == 100) {
document.write("실행되었습니다(3)");
}
} else {
document.write("실행되었습니다(4)");
}
실행되었습니다(1)
실행되었습니다(2)
실행되었습니다(3)
swich문
: 다중 if문과 같은 형식이지만 else if 대신 case를 사용한다.
case와 값을 하나씩 비교하여 일치하는 case를 실행(출력) 시킨다.
조건이 일치하면 종료되는 if문과는 다르게 조건 만족 후에도 식이 종료되지 않으므로 break를 사용하여 식을 중지시켜 주어야 한다.
형식
swich (값) { case 값1 : 실행문; break; case 값2 : 실행문; break; default : 실행문 } |
ex)
const num = 100;
switch(num) {
case 90:
document.write("실행90");
break;
case 80:
document.write("실행80");
break;
case 70:
document.write("실행70");
break;
case 60:
document.write("실행60");
break;
case 50:
document.write("실행50");
break;
default:
document.write("0");
}
default (기본값)은 case와 일치하는 값이 없을 때 출력된다.
while문
: 조건부터 체크한 후 조건이 참(true)인 동안 반복한다.
조건이 false라면 실행문은 단 한번도 실행되지 않을 수도 있다.
증감식의 위치에 따라 값이 바뀐다.
형식
초기 값 while (조건식) { 실행문; 증감식; } |
ex)
let num = 0;
while(num<5) {
num++; //1
document.write(num); //2
}
출력문 다음(2번 위치)에 증감식이 오면 증감 되지 않은 상태에서 출력되어 0부터 시작하고,
출력문 이전(1번 위치)에 증감식이 오면 증감 되지 않은 상태에서 출력되어 1부터 시작하게 된다.
do while문
:초기 값이나 반복 횟수 없이 조건만 주어졌을 때 주로 사용한다.
while문과 다르게 일단 결과를 출력하고 나서 조건을 체크하므로 while문이었으면 결과값이 출력되지 않았을 식을 작성하여도 결괏값이 일단 한 번은 출력된다.
do를 먼저 실행하기 때문에 첫 번째 실행은 조건에 상관이 없기 때문이다.
또한 do while문은 조건식을 뒤에 작성한다.
while문과 같이 증감식의 위치에 따라 결과값이 달라진다.
형식
초기 값 do { 실행문; 증감식; } while (조건식) |
ex)
let num2 = 0;
do{
document.write(num2);
num2++;
} while(num2<5);
for문
:조건이 참이 동안 계속 반복된 동작을 수행한다.
초기값이 증감식에 따라 변하면서 조건값을 만족시킬 때까지 반복 수행을 지속하며, 조건이 만족되고 나면 자동으로 식이 종료된다.
for문은 증감식에 따라 초기값이 계속 변화하므로 let으로 선언해주어야 한다.
형식
for (초기 값; 조건식; 증감식;) { 실행문; } |
ex)
for(let i=; i<=50; i++) {
document.write(i)
}
1, 2, 3, 4, 5 · · · · · 50
중첩 for문
:반복문 안에 새로운 반복문이 들어가 있는 것으로, 겉에 있는(감싸안은) for문이 1번 실행될 때마다 안에 있는(감싸 안겨진)for문은 모든 반복을 실행한다.
안의 for문의 동작이 완료되면 다시 겉에 있는 for문이 1번 반복하고, 안의 for문이 모든 반복을 실행하는 동작이 반복되는 것이다.
형식
for (초기 값; 조건식; 증감식;) { 실행문; } for (초기 값; 조건식; 증감식;) { 실행문; } |
ex)
for(let i=2; i<=9; i++){
document.write(i + "단","<br>");
for(let j=1; j<=9; j++){
document.write(i + "X" + j + "=" + i*j); //i(곱해지는 수) * j (곱하는 수)
document.write("<br>"); //가독성을 위하여 줄바꿈 태그를 추가함.
}
document.write("<br><br>"); //각 숫자의 단이 깔끔하게 정리되기 위하여 줄바꿈 태그를 추가함.
}
2단
2X1=2
2X2=4
2X3=6
2X4=8
2X5=10
2X6=12
2X7=14
2X8=16
2X9=18
·····
9단
9X1=9
9X2=18
9X3=27
9X4=36
9X5=45
9X6=54
9X7=63
9X8=72
9X9=81
break 문
:현재 실행문을 중지 시키고 다음 실행문으로 넘어가게 하는 중지문이다.
반복문은 지정한 횟수만큼 명령을 반복하지만, break문을 사용하면 반복문을 중간에 끝내게 하여 식이 조건을 만족하여 알아서 종결되는 것이 아니라 break문에 의해 반복문을 끊어버리는 것이다.
형식
break; |
ex)
for(let i=1; i<100; i++){
document.write(i)
if(i == 50) {
break;
}
1, 2, 3, 4, 5 ····· 50
이 식은 1부터 100까지 출력해야 하는 반복문이지만 break문을 사용하므로 50까지만 반복하고 식이 종결되어버린 것이다.
coutinue 문
:조건을 만족하면 실행하던 반복 문장을 건너뛰는 건너뛰기 문이다.
조건에 해당되는 값을 만났을 때 실행하던 반복 문장을 건너 뛰고 반복문의 맨 앞으로 되돌아가 다음 반복 과정으로 넘어가도록 한다.
반복과정을 한 차례 건너뛰는 것이기 때문에 조건에 해당하는 값이 출력되지 않는다.
continue문이 실행문 이후에 위치하면 건너뛰어지지 않고 실행되기 때문에 반드시 실행문 이전에 continue문을 작성하여야 한다.
형식
coutinue; |
ex)
for(let i=1; i<10; i++){
if(i == 10) {
continue;
}
document.write(i)
}
123456789