김루루의 개발일기

for 반복문 / break/ continue 연습문제 풀기 - javascript 0601 본문

프론트엔드/Javascript

for 반복문 / break/ continue 연습문제 풀기 - javascript 0601

김루루 2021. 6. 13. 15:57

◎for 반복문

for ( begin ; condition ; step ) {
           반복문 본문 
}
  • begin : 초기값
  • condition : 조건
  • step : 반복 본문 실행이후 실행되는 값

 

※ 인라인 변수선언 
반복문 안에서만 선언된 변수로 반복문 안에서만 접근이 가능하다
인라인 변수 선언 대신, 밖에 정의 되어 있는 변수를 사용 할 수 도 있다

 

 

※ for 구성요소 생략가능 ( begin / step )

//begin 생략 예시 :
let i = 0;
for (; i < 5 ; i++){
   alert(i);
}
 
//step 생략 예시 :
let i = 0;
for (; i < 5 ; ){
   alert(i++);
}

 


◎break 

대부분의 반복문은 false 일때 종료된다.

근데 특정 지시자인 break 사용하면 언제든지 반복을 종료시킬 수 있다.

 

ex) 아무것도 입력하지 않을때 까지 입력 받은 숫자 더한 값 출력하기.

let sum = 0;

for(i = 0; true ;){ 
    let value = +prompt('숫자를 입력하시오') 
    if(!value) break;
    
    sum += value ;
}

alert('합계' + sum );
let sum = 0;

for(i = 0; true ;){ 
    let value = +prompt('숫자를 입력하시오') 
    //유저에게 입력받은 값 value 변수에 저장
    if(!value) break ; 
    // value에 값이 있을때(false)
    // 9번줄 value + sum 실행후 반복 
    
    // value에 값이 없을때(ture)
    // break 실행으로 반복문 종료하고 12줄의 alert창 실행.
    
    sum += value ;
}

alert('합계' + sum );

◎continue 

현재반복을 중단하고 다음 반복으로 넘어가고 싶을때 사용한다.

(전체 반복문을 중단시키지 않고 현재 실행중인 이터레이션(반복)을 중단시키고 다음 이터레이션을 강제로 실행 시키고 싶을때 )

 

ex) 0부터 10까지 홀수 출력 하기

for ( let i = 0; i < 10; i++){
	if( i % 2 == 0) continue ; 
                               
    alert(i);
}

for ( let i = 0; i < 10; i++){
	if( i % 2 == 0) continue ; 
    //조건이 true(짝수)라면 남아있는 본문은 실행되지 않고 다시 반복한다.
    //조건이 false(홀수)라면 현재 반복문을 종료하고 남아있는 반복을 실행한다.
                               
    alert(i);
}

 

 


<모던 자바스크립트 연습문제 >

문제) 2부터 n까지의 숫자 중 소수만 출력해주는 코드

(n = 10이라면 결과는 2,3,5,7)

 

 

내가 푼 답)

 let n = prompt('입력하기') ;

    for ( i = 2 ; i <= n ; i++){
        if( i == 2 || i == 3 || i % 2 !== 0 && i % 3 !==0)
        alert(i);
        
    }

 

 

모던 js 정답)

//정답


/* 범위 내 모든 숫자 i에 대해서 {
  1과 i 사이에 제수가 있는지를 확인
  있으면 => 소수가 아님
  없으면 => 소수이므로 출력해줌
} */

let n = 10;

nextPrime:
for (let i = 2; i <= n; i++) { // 각 i에 대하여 반복문을 돌림

  for (let j = 2; j < i; j++) { // 제수(나눗수)를 찾음
    if (i % j == 0) continue nextPrime; // 소수가 아니므로 다음 i로 넘어감
  }

  alert( i ); // 소수
}

 

(내가짠 코드랑 비교 북그럽...**

결과는 같은데 코드가 다른게 정말 신기하다!

모던js 정답 실행 순서가 조금 이해가 안된다 ㅠㅠ)

Comments