TIL 2 | Javascript_반복문(while문과 for문)

Moon ·2021년 5월 28일
1

Javascript

목록 보기
2/16
post-thumbnail

2. 반복문 (while문과 for문)

1) while 문

while문의 기본 형식은?
while (조건식) {
동작문 1;
동작문 2;
동작문 3;
}
*만약 조건식 부분에 true라고 되어 있으면 무한 반복문.

실제 (조건식) 부분에 ture가 써져있다면 무한반복문이 된다.
하지만 우리는 어느 순간까진 ture 였다가 false로 바뀌어 실행을 멈추는 것을 하려 한다.
이때 필요한게 변수(variables)이다.
그렇다면 예제를 통해서 while문을 실제로 어떻게 쓰는지 살펴보자.

let i = 1;
while (i <= 100){
  console.log('hello, while!');
  i++
}

결과값으로  hello, while은 100번 반복되게 된다.

또한 i++ 대신 i = i +1 과 i += 1 로 표현 할 수 있다. ( = 은 '같다'가 아니라, 오른쪽 것을 실행 한 후 왼쪽에 넣어라 라는 뜻.)
프로그래밍 할 때는 변수에 첫 값으로 1을 넣기 보다는 0을 넣어서 설정한다.

2) for 문

for문의 기본 형식은?
for (시작; 조건식; 종료식;)
동작문;

*만약 조건식이 비어있으면 무한반복문이며 동작문이 여러개인 경우, {}로 묶으면 된다.

QUIZ> 아래의 답은 어떻게 나올까?

for(let i = 0; i <100; i = i +2){
console.log(i +1);
}

값은 1 3 5 ...99 으로 홀수값이 나온다.
i = 0 i+1 = 1 i+2 = 2
i = 2 i+1 = 3 i+2 = 4
.
.
i= 98 i+1 = 99 i+2= 100

i = i +2는 concole.log에 나온 값에서 2를 더하는게 아니라 i값에 더하는 것이란것 잊지말자!

3) for문과 while문 비교

for와 while은 조건식 동작식, 종료식의 위치가 다르다는게 차이점 이다. 언뜻 보았을 때 for문이 더 어려워보여서 while문만 써야겠다고 생각이 들 수도 있는데 들어가는 내용은 같고 오히려 조건식,동작식,종료식 모두가 한꺼번에 한줄에 쓰이는 for문이 보기가 편하다.

QUIZ> 1부터 100까지 출력하는 코드를 for 문과 while 문으로 바꿔보세요

- for ( let i = 0; i <= 99; i ++ )
  {console.log( i+1 )};

    혹은

- for (let i = 1; i<=100 ; i ++)
  {console.log(i)};

4) break문으로 코드 실행 멈추기

break문은 반복문을 실행중지할때 사용된다.
반복문인 for문, while문, do-while문 그리고 switch문의 실행을 중지할 때 'break' 를 사용한다.
break문은 대개 if문과 같이 사용되어 if문의 조건식에 따라 for문과 while문을 종료할 때 사용한다.
또한 반복문이 중첩돼 있을 시, 가장 가까운 반복문만 종료 시키므로 바깥쪽 반복문까지 종료시키려면 바깥족 반복문에 이름(라벨)을 붙이고, 'break 라벨이름;'을 사용하면 된다.

let i = 0;
while (true) {         // true가 들어가있으면 원래는 무한반복 이지만 하단에  break로 인해 무한x 

if ( i === 5 ) break;  // i === 5 일 때의 console.log(5) 까지만 값이 나옴!!! 

i++; 		       // i++이전에 끝나버림. 이  줄은  실행 안됨.

}

console.log(i);

>5
 for (let i = 0; i<100; i = i + 3)  {
console.log(i + 1);

}

// i  == 0,    i + 1 == 1

// i  == 3,    i + 1 == 4

// i  == 6    i + 1 == 7

// i  == 9,    i + 1 == 10

                .

          .

// i  == 99, i + 1 == 100

>100

그리고 무한반복문의 경우에는 for과 while도 사용할 수 있지만 for의 경우
for(i=0; ; i++) 로 조건식이 비어있으므로 보기에 조금 어색하다.
따라서 무한 반복문의 경우엔 while을 사용하길 더 권장 한다.

5) continue문으로 반복문 멈추기

_**continue문은 반복문을 종료하지 않고 계속 반복을 수행한다. 다만 continue밑 에있는 코드는 생략하고 바로 다음 반복문으로 간다.

let i = 0;

while ( i <10 ) {

    i++;

    if (i % 2 === 0)  {  //  ' i를 2로 나눈경우 나머지가 0 인 경우는 ' ( 혹은 짝수!) 경우 밑에가 실행 안됨. 

                       //  따라서 값이 x.

      continue;       // 해당 부분은 값 x! 건너뛰고 다음순서로!

   }

  console.log(i);

}  

중첩된 반복문 사용

  for ( let i = 0; i < 10; i++) {

   for ( let j = 0; j <10; j++) {

   console.log(i, j);

   }

   }

>실행 결과

// i == 0  j == 0 console.log (0,0)

// i == 0  j == 1  console.log (0,1)
 for (let i = 0; i<5; i++) {

         if (i % 2 === 0;) continue;

           for (let j = 0; j<5; j++) {

             if (j % 2 === 0;) continue;

              for (let k = 0; k<5; k++) {

                if (k % 2 === 0;) continue;
HW / 구구단 

- 

*****

****

***

**

*

for ( let i = 6; i > 0; i--){
  console.log('*'.repeat(i-1))
}

- 2

*

**

***

****

*****

for ( let i = 0; i <5; i ++ ) {

  console.log('*'.repeat(i+1))

}

여기서 break와 continue, return의 차이점을 잠시 짚고 넘어가자면,
break문은 break문은 반복문을 실행중지할때 사용한다.
continue문은 반복문을 종료하지 않고 계속 반복을 수행하되 continue밑에있는 코드는 생략하고 바로 다음 반복문으로 간다.
return문은 속해있는 함수나 프로그램을 즉시 종료시킨다.

profile
Welcome to my world! ☺️

0개의 댓글