안녕하세요, 여행벌입니다.

오늘은 반복문을 제어하는 continue문에 대해서 다뤄보겠습니다.


continue 문

 continue 문은 반복문에서만 사용할 수 있습니다. 반복문에 사용할 경우 continue문 다음에 오는 코드는 무시하고 바로 조건식으로 이동해 조건 검사를 합니다. 즉, 반복문 안에 있는 continue 문은 "다음에 오는 코드는 무시하고 바로 조건식에서 조건 검사를 실행해!" 라고 말하는 것과 같습니다.

 기본 형은 다음과 같습니다.

for(초기값; 조건식; 증감식){
    continue;
    자바스크립트코드;
}
///////////////////////////
초기값;
while(조건식){
    증감식;
    continue;
    자바스크립트코드;
}

 예제를 통해 익혀보겠습니다.

 반복문을 이용해 i 를 0 부터 9까지 증가시키면서 홀수면 출력하는 코드를 구현해보겠습니다.

for(let i = 0; i < 10; i++){
    if(i % 2 == 0) //짝수면 SKIP
        continue;
    else // 홀수면 출력
        console.log(`${i}`);
}

 i % 2 == 0 이라는 뜻은 i 가 2로 나눴을 때 나머지가 0이라는 뜻으로 짝수를 의미합니다. i 가 짝수라면 continue 가 실행되므로 바로 증감식과 조건식이 수행됩니다.

 같은 코드를 while 문으로 구현해보겠습니다.

let i = 0;
while(i < 10){
    if(i % 2 == 0){
        continue;
    }else{
        console.log(`${i}`);
    }
    i++;        
}

 이렇게 코드를 구현하면 과연 잘 작동할까요?? 차근차근 코드를 따라가 보겠습니다. i = 0 이므로 조건식을 만족해 while 문 안의 코드를 수행하게 됩니다. 이때, i = 0이므로 if 문이 조건식이 참이 되고 continue 문이 수행됩니다. continue 문을 만나면 while 문은 다시 조건식부터 수행하게 되고, 증감식 i++ 은 수행이 되지 않으므로 무한 루프에 빠지게 됩니다.

let i = 0;
while(i < 10){
    if(i % 2 == 0){
        i++;        
        continue;
    }else{
        console.log(`${i}`);
        i++;        
    }
}

 이렇게 코드를 수정한다면 continue 문을 만나도 증감식은 진행되므로 우리가 원하는 결과를 얻을 수 있습니다.

 for문과 다르게 while 문은 증감식 코드를 continue 문 뒤에 작성하면 continue 문에 의해 무한 루프에 빠지게 되므로 조심해야 됩니다.


다음 포스팅부터는 객체에 대해서 다뤄보겠습니다.

안녕하세요, 여행벌입니다.

오늘은 반복문을 제어하는 break문에 대해서 다뤄보겠습니다.


break 문

 반복문인 while 문 또는 for 문에서 break 문을 실행하면 조건식과 상관없이 강제로 반복문을 종료합니다.   즉, break 문은 반복문을 강제로 종료할 때 사용합니다.

 기본 형태는 다음과 같습니다.

for(초기값; 조건식; 증감식){
    break;
    자바스크립트 코드;
}
/////////////////////////////
초기값;
while(조건식){
    break;
    자바스크립트 코드;
    증감식;
}

 예시를 통해 익혀보겠습니다.

for(let i = 0; i < 5; i++){
    console.log(`${i}`);
}

 위의 for 문을 실행하면 0 부터 4 까지 출력될 것입니다.

for(let i = 0; i < 5; i++){
    if(i === 3)
        break;
    console.log(`${i}`);
}


 break 문을 다음과 같이 추가하면 결과는 어떻게 될까요?

 i 가 3이 되는 순간 if 문에 의해 break 문이 실행되고, for 문은 깨지게 됩니다.

 결과는 다음과 같습니다. 0 1 2 만 출력되고 뒤의 3 4 는 작동하지 않은 것을 확인할 수 있습니다.

 while 문에서도 마찬가지입니다.

let i = 0;
while(i < 5){
    if(i === 3)
        break;
    console.log(`${i}`);
}

 같은 결과가 나오는 것을 확인할 수 있습니다.

 

 그렇다면, 반복문이 중첩되어있으면 break 문은 어떻게 작동할까요??

for(let i = 0; i < 5; i++){
    for(let j = 0; j < 5; j++){
        if(j === 3)
            break;
        console.log(`${i} : ${j}`);
    }
}

 두 번째 for 문 안에 break 문을 추가했습니다. 결과는 break 문은 가장 근접한 반복문 1개만! 종료시킵니다. 즉, 바깥쪽 for문은 계속 작동하게 됩니다.

 결과는 다음과 같습니다. break 문은 가장 가까운 반복문만 종료시키므로 바깥쪽 for문은 모두 작동돼서 i 는 0 부터 4까지 모두 출력되는 것을 확인할 수 있습니다. 하지만 j 는 break 문에 의해 반복문이 종료되므로 0 1 2  만 출력되는 것을 확인할 수 있습니다.

 break 문은 예외 처리를 하는데 자주 사용되므로 꼭 익혀두시기 바랍니다.


이상으로 break문 포스팅을 마치도록 하겠습니다.

 

안녕하세요, 여행벌입니다.

오늘은 제어문의 한 종류인 반복문(for)에 대해서 다뤄보겠습니다.

개인적으로 제일 자주 사용하는 제어문입니다.


for 문

 for 문은 조건식을 만족할 때까지 특정 코드를 반복하여 실행합니다. 사용 방법을 while 문과 같지만 while 문보다 사용하기 편해 사용 빈도가 대체로 높은 편입니다.

기본 형태는 다음과 같습니다.

for(초기값; 조건식; 증감식){
    자바스크립트 코드;
}

 while 문에서도 조건식, 증감식, 자바스크립트 코드가 동일하게 필요했고, 또 조건식을 위해 초기값을 설정했었습니다. for문은 초기값에서 시작해 조건식을 만족한다면 자바스크립트 코드를 수행하고 증감식을 수행합니다. 즉! while 문과 for 문은 모양만 다를 뿐 동일하게 작동합니다.

 

 예시를 통해서 익혀보겠습니다.

let i;
for(i = 0; i < 10; i++)
    console.log(`${i+1}번 째 입니다.`);

 

 먼저, 변수 i를 선언했습니다. i 에 초기값으로 0을 주고, 조건식 i < 10을 만족하므로 자바스크립트 코드를 수행하고, i++ 을 실행합니다. 결과는 다음과 같습니다.

 변수를 선언하는 과정을 따로 다른 줄에 작성하지 않고 다음과 같이 구현할 수도 있습니다.

for(let i = 0; i < 10; i++)
    console.log(`${i+1}번 째 입니다.`);

 결과는 동일합니다.

 

 for문을 이용해서 구구단을 만들어 보도록 하겠습니다.

let mul = 5;
for(let i = 1; i < 10; i++)
    console.log(`${mul} X ${i} = ${mul * i}`);

 i가 1부터 9까지 자바스크립트 코드가 실행되므로 다음과 같이 출력됩니다.

 

 이중 for문을 이용하면 구구단을 1단부터 9단까지 전부 출력할 수 있습니다.

for(let i = 1; i < 10; i++){
    for(let j = 1; j < 10; j++){
     console.log(`${i} X ${j} = ${i * j}`);
    }
}

 i가 1일 때 안에 있는 for문이 실행되므로 j 를 1부터 9까지 9번 코드를 수행하게 됩니다.

또, i가 2일 때 바깥 for문의 조건식을 아직 만족하므로 마찬가지로 안쪽 for문이 실행됩니다.

 이 과정을 i를 1부터 9까지 반복하며 각각 안쪽 for 문에 의해 console.log 함수가 실행됩니다.

 이중 for문을 이용해서 구구단을 쉽게 출력할 수 있습니다.


이제 if , switch, while, for 문 4가지 제어문에 대해서 모두 배웠습니다.

4가지 제어문만 논리적으로 잘 이용한다면 원하는 모든 알고리즘을 작성할 수 있습니다.

다음 포스팅에서는 반복문에서만 사용하는 break, continue 문에 대해서 다뤄보도록 하겠습니다.

 

안녕하세요, 여행벌입니다.

오늘은 제어문의 한 종류인 반복문(while)에 대해서 다뤄보겠습니다.


반복문이란

 반복문을 이용하면 코드를 원하는 횟수만큼 반복하여 실행할 수 있습니다.

 특정 코드를 100회 수행해야 되는 경우에 같은 코드를 100번 적어야 한다면 굉장히 비효율적으로 시간 낭비겠죠? 이럴 때 반복문을 이용한다면 쉽게 특정 코드를 100번 수행할 수 있습니다. 반복문은 크게 while 문과 for 문으로 구분할 수 있습니다. 이번 포스팅에서는 while 문에 대해서 익혀보도록 하겠습니다.

while 문

 while문은 조건식을 만족할 때까지 코드를 여러 회 반복하여 실행할 수 있습니다.

 기본 형태는 다음과 같습니다.

while(조건식){
    자바스크립트 코드;
    증감식;
}

 while 문은 조건식을 만족한다면 { } 안에 있는 코드를 수행합니다. 반복문에서는 항상 증감식이 포함되어야 하는데요! 증감식의 역할은 우리가 원하는 만큼 코드를 수행했다면 조건식을 false로 바꿔주는 역할을 합니다.

 

 예시를 통해서 익혀보겠습니다.

let i = 0;
while(i < 10){
    console.log(`${i + 1}번 째 입니다.`);
    i++;
}

 이 while 문에서 조건식은 i < 10 이 됩니다. 처음에는 i = 0 이므로 조건식이 true가 되고 while 문이 수행됩니다. 하지만, i 를 변경해주는 i++(증감식) 코드가 없다면 while 문은 항상 조건식을 만족하므로 무한루프에 빠져 무한히 수행하게 됩니다. 그렇기 때문에 반복문은 항상 증감식이 필요합니다.

  i 가 0이므로 조건식을 만족하고 (i + 1)번 째입니다. 즉 1번째 입니다가 출력됩니다. 그 후 i 는 1로 바뀌고 같은 과정을 반복하다 i가 10이 되는 순간 조건식이 거짓(false)가 되면서 while 문이 수행을 멈춥니다.

 

 이번에는 조건문(if)와 반복문(while)을 같이 사용해보겠습니다.

let i = 0;
while(i < 10){
    if(i % 2 == 0)
        console.log(`${i}는 짝수입니다.`);
    else
        console.log(`${i}는 홀수입니다.`);
    i++;
}

 위와 마찬가지로 i를 0부터 1씩 증가시켜 10보다 작다면 while 문 코드를 수행할 것입니다. 이때, 조건문(if) 를 이용해 짝수라면 짝수를 출력해주고, 홀수라면 홀수를 출력해주는 코드를 구현해보았습니다.

do-while 문

 while 문의 경우에는 조건식의 만족 여부를 먼저 검사한 후 중괄호에 있는 코드의 실행 여부를 결정합니다.  하지만 do-while 문은 반드시 한 번 코드를 먼저 실행하고 조건식을 검사합니다.

기본 형태는 다음과 같습니다. while 문과 비슷한 것을 확인할 수 있습니다.

do{
    자바스크립트 코드;
    증감식;
}while(조건식)

 예시를 통해서 익혀보겠습니다.

 위에서 while 문 예시로 다뤘던 코드를 i = 10으로 바꿔서 do while 문에서 실행해보겠습니다.

let i = 10;
do{
    console.log(`${i + 1}번 째 입니다.`);
    i++;
}while(i < 10)

 조건식을 만족하지 않으므로 코드가 실행되면 안 됩니다. 하지만, do-while 문은 반드시 한 번 코드를 먼저 실행하므로 결과는 다음과 같습니다.

 do-while 문은 while 문과 작동 원리가 동일합니다. 다만 반드시 한 번 코드를 먼저 실행하는 점만 다릅니다. 상황에 맞는 반복문을 사용하시면 될 것 같습니다. 아이디를 입력받아 아이디가 틀리다면 계속 입력을 다시 받는 경우를 생각해보면 일단 아이디를 한 번은 입력을 받아야 됩니다. 따라서 do-while 문이 더 적합한 상황이라고 볼 수 있습니다. if 문과 switch 문처럼 while 문과 do-while 문도 동일한 작업을 수행할 수 있습니다. 하지만, 상황에 맞춰서 더 필요한 제어문을 이용하시면 될 것 같습니다.


이상으로 반복문 중 while 문 포스팅을 마치도록 하겠습니다.

 

+ Recent posts