자바스크립트 문법 (4)
조건문
See the Pen Untitled by byeolyoon (@byeolyoon) on CodePen.
case 를 이용한 예제
See the Pen Untitled by byeolyoon (@byeolyoon) on CodePen.
var i = 1, j = 1;
while(i > 3) {
document.write("i: " + (i++) + "<br>");
}
do {
document.write("j:" + (j++) + "<br>");
} while(j > 3);
// j : 1
while 문과 do/while 문의 차이점
while문 | 거짓이라면(조건에 부합 X) 단 한번도 실행하지 않음 |
do/while문 | 한번은 실행하고 루프를 빠져나옴 |
for(var i = 1; i < 10; i++){
document.write(i + "<br>")
}
var arr = [3,4,5];
for(var i = 0; i < arr.length; i++) {
document.write(i + " ");
}
document.write("<br>");
for (var i in arr) {
document.write(i + " ");
}
// 0 1 2
0 1 2
arr 의 길이 만큼 출력
<for/in 문을 사용하여 객체의 프로퍼티에 접근하는 예제>
var obj = { name : "이순신", age: 20};
for (var i in obj) {
document.write(i + "<br>")
}
//name
age
for/in 문은 해당 객체가 가진 모든 프로퍼티를 반환하는 것이 아닌, 오직 열거할 수 있는 프로퍼티만 반환함
var arr = [3,4,5];
for(var i = 0; i < arr.length; i++){
document.write(arr[i] + " ");
}
for(var value of arr) {
document.write(value + " ");
}
//3 4 5 3 4 5
+) for / of 문은 익스플로러에서 지원하지 않음
<for / of 문을 사용하여 Set 객체의 프로퍼티에 접근하는 예제>
var arr = new Set([1,1,2,2,3,3]);
for (var value of arr) {
document.write(value + " ");
}
// 1 2 3
루프의 제어
일반적으로 표현식의 검사를 통해 루프로 진입하면, 다음 표현식을 검사하기 전까지 루프 안에 있는 모든 실행문을
실행함.
하지만 continue문과 break문은 이러한 일반적은 루프의 흐름을 사용자가 직접 제어할 수 있게 해줌
label문을 사용하면 continue문과 break문의 동작이 프로그램의 흐름을 특정 영역으로 이동시킬 수 있음
3의 배수를 제외하고 출력
var exceptNum = 3;
for(var i = 0; i <= 100; i++){
if(i % exceptNum == 0)
continue;
document.write(i + " ");
}
1 2 4 5 7 8 10 11 13 14 16 17 19 20 22 23 25 26 28 29 31 32 34 35 37 38 40 41 43 44 46 47 49 50 52 53 55 56 58 59 61 62 64 65 67 68 70 71 73 74 76 77 79 80 82 83 85 86 88 89 91 92 94 95 97 98 100
값이 홀수인 경우만 출력
gugudan:
for (var i = 2; i <= 9; i++) {
dan:
for (var j = 1; j <= 9; j++) {
if ((i*j) % 2 == 0)
continue dan;
document.write(i + " * " + j + " = " + (i*j) + "<br>");
}
}
break문
반복문을 완전히 종료시키고, 반복문 바로 다음에 위치한 실행문으로 프로그램의 흐름을 이동시킴
var lectures = ["html", "css", "자바스크립트", "php"];
var topic = "자바스크립트";
for (var i = 0; i < lectures.length; i++) {
if (lectures[i] == topic) {
document.write(topic + " 과목은 " + (i + 1) + "번째 과목입니다.");
break; // 원하는 값을 찾은 후에는 더 이상 for 문을 반복하지 않고 빠져나감.
}
}
구구단 3단까지 출력
gugudan:
for (var i = 2; i <= 9; i++) {
dan:
for (var j = 1; j <= 9; j++) {
if (i > 3)
break gugudan;
document.write(i + "*" + j + "=" + (i*j) + "<br>");
}
}