본문 바로가기
javascript

[자바스크립트] 제어문(control-flow)

by jinbro 2017. 3. 10.

[제어문] : 코드 진행이 위->아래로 가기보다 상황에 따라 다른 결과를 얻도록 할 때 사용, 가장 원시적인 인공지능



[블럭구문] : 구문들의 집합, 구문들을 하나의 동작으로 묶는 역할을 함, 중괄호( {....} )로 묶음, 제어문의 범위를 나타낼 때도 사용됨
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function myFunction(){
    var x=10, y=2;
 
    console.log(x*y);
}
 
var person = {
    eye: 2,
    nose: 1,
 
    walk: function(){
        console.log("walking....!");
    }
}
 
var x = 10;
while(x>0){
    console.log(x);
    x--;
}
cs


[조건문] : 일정 조건에 따라 다음 특정 진행 흐름으로 유도하려고 사용함.

1) if문 : 주어진 조건의 결과값(true, false)에 따라 각각의 방향으로 진행되도록 할 때 사용함
- 코드 블럭으로 if 구문과 else 구문을 구분함
- 조건이 세가지 이상일 경우, else if (조건문)을 사용함
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
var x = 10;
 
if(x>=10){
    console.log("참");
else{
    console.log("거짓");
}
 
 
 
/* 
    if문 자리는 항상 주어진 조건, 변수가
    true인지 아닌지만 살핌
    true일 경우 실행, 아닐 경우 else 실행
*/
 
var flag = true;
 
if(flag) {
    console.log("참");
else {
    console.log("거짓");
// "참" 출력
 
if(!flag){
    console.log("????");
else {
    console.log("!!!!");
}
 
// "!!!!" 출력
 
 
 
/* 조건이 세가지 이상일 경우 */
 
var day = new Date();
var hour = day.getHours();
 
if(hour<11){
    console.log("좋은 아침입니다!");
else if(hour>18){
    console.log("좋은 저녁되세요!");
else {
    console.log("나른한 오후군요!");
}
cs

2) switch문 : 조건의 true, false가 아닌, 조건 대상의 상태값에 따라 특정 방향으로 진행시켜야할 때 사용함
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var color = "blue";
 
switch(color){
    case "red" :
        console.log("빨강");
    break;
    
    case "blue" :
        console.log("파랑");
    break;    
 
    case "green" :
        console.log("초록");
    break;
 
    default :
        /* 해당되는 것이 없을 때, break문  */
        console.log("??????");
}
cs


[반복문] : 주어진 조건이 true일 때(일정 횟수 돌도록 설계가능),  반복되는 구문( {....} )을 만들 수 있음

1) for문 : 일정 횟수만큼 반복 실행할 때 사용함
1
2
3
4
5
 
/* for(변수초기화; 조건(조건이 true일 때까지 실행); 반복문 실행후 변수에 어떤 변화를 줄것인지 */
for(var i=0; i<10; i++){
    console.log(i);
}
cs

2) while문 : 반복횟수를 정확히 모르지만, 조건이 false가 될 때까지 실행하고싶을 때 사용, 무한반복문도 가능(조건문 자리에 true를 넣을 시)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var a = 0;
 
while(a < 10){
    console.log(a);
    a++;
}
 
/* 
    무한반복문은 잘 사용해야함......
    브라우져에 무리를.....
 */
while(true){
    console.log("안녕");
}
cs

3) do~while문 : 2번 항목과 비슷하나, 조건의 결과(true/false)와 상관없이 최초 1회는 반드시 실행함
1
2
3
4
5
var a = 10;
 
do {
    console.log("최초 1회만 실행됨");
while(a>10);
cs

4) break 문 : 반복문을 탈출할 때 사용함, 무한반복문이나 반복문 내 조건문을 넣을 시 조건문의 결과에 따라 반복문을 탈출할 때 사용함    
1
2
3
4
5
6
7
8
var a = 10;
 
while(true){
    if(a === 10){
        console.log("종료합니다.");
        break;
    }
}
cs

5) continue문 : continue문 이후 구문은 실행 생략하고 다시 반복문의 조건검사 위치로 이동함
- 특정 조건일 때 특정 구문을 실행하지않기위해 사용함
1
2
3
4
5
6
7
8
9
10
11
var cnt = 0;
 
while(cnt < 10) {
 
    cnt++;
 
    if(cnt >= 2 && cnt % 2 == 0continue;
 
    console.log(cnt + "번째");
 
}
cs



[알아둬야할 것]

1) 암묵적 강제 형 변환 : 조건문 자리에 객체, 문자열, 배열, 숫자 등 boolean형이 아닐 경우 강제로 boolean으로 변환함
-(!!과 같은 역할) true인지 false인지 판단함
     - 다른 자료형의 값이 true와 false가 되는 조건 알아보기 : http://jinbroing.tistory.com/50 - ctrl+ f 누른 후 !! 검색


     
2) 타입과 값 모두 고려하는 ===(일치연산자)를 사용하는 것이 좋음, ==, !=(동등연산자) 사용할 경우 강제형변환 함
3) 단항 연산자 사용가능 : 단항연산자로 들어가는 피연산자의 값이 true/false를 가져야함



'javascript' 카테고리의 다른 글

[자바스크립트] 객체 #2  (0) 2017.03.14
[자바스크립트] 객체  (0) 2017.03.11
[자바스크립트] 연산자  (0) 2017.03.08
[자바스크립트] 자료형과 변수  (0) 2017.03.08
[자바스크립트] 기본문법  (0) 2017.03.08

댓글