본문 바로가기

Java

JAVA 반복문: for문, 중첩 for문

 

2021227일 수업 정리

 

반복문 for

 

for문 이란

반복해서 수행해야 할 것을 한 번에 해결해준다.

여러 개의 값들 중에 원하는 값을 골라서 사용하고 싶을 때 for문에 개수 범위를 입력하고 for문안에 조건(보통 if문)을 넣어 원하는 값을 골라서 사용할 수 있다.

또는 하나의 정보를 여러 곳에 저장하고 싶을 때 for문에 여러 곳의 개수 범위를 입력하고 for문안에 여러 곳에 저장을 수행하는 코드를 넣어 사용할 수 있다.

이외에도 여러가지의 이유로 for문을 사용한다.

 

for문의 구조

for(초깃값; 조건식; 증감식){

           //반복되어 수행될 문장;

}

for문을 작성할 때 보통 초깃값의 변수는 i,j,k를 많이 사용하며,

 초기화를 1로 설정하여 사용할 수 있지만,

 보통은 0으로 초기화하고 사용한다.

 초기화를 0으로 했기 때문에 조건을 i<3; 으로 주었을 때 수행되는 횟수가 3번이다.

 

for문 실행 순서

for문 시작 -> 초깃값 -> 조건식(결과: true) -> 수행문 -> 증감식 -> 조건식(결과: falsse) -> for문을 빠져나온다.

조건식의 결과가 true일 경우 위의 진한 글씨가 반복된다.

 

for문의 예

1. 증감식이 증가 연산자일 경우

    아래의 예시의 경우 i변수가 10보다 작을 때까지 실행 된다.

 

for(int i=0; i<10; i++){ // for문을 i0부터 10보다 작을 때까지 10번 실행할 것이라는 의미

           if(i%2==0){    // 2로 나눴을 때 값이 0인것만 출력하겠다는 의미

                      System.out.println(“for문 예시 i의 값은?”+i );

           }

}

=>

for문 예시 i의 값은? 0

for문 예시 i의 값은? 2

for문 예시 i의 값은? 4

for문 예시 i의 값은? 6

.

. (생략)

 

증감식을 i+2로 바꿔도 같은 값이 나오지만 잘 사용하진 않는다.

 

2. 증감식이 감소 연산자를 사용할 경우

아래의 예시의 경우 변수i0보다 클 때까지 실행된다.

 

for (int i=9; i>0; i--) {

}

 

3. 조건을 생략할 경우 (잘 사용하지 않는다.)

 

3.1. 초기값 생략

- 초기값을 생략할 경우 for문을 작성하기 전 초기값을 생성해야 하고

초기값 자리에 “;”(세미콜론)을 입력해야 한다.

int i=0;

for(; i>10; i++){}

 

3.1. 초기값, 조건식, 증감식 생략

- 무한 루프로 실행되는 for문이 이다.

  무한 루프를 끝내기위해선 break;를 사용한다.

for(;;){}

 

반복문 중첩 for

 

중첩 for문이란

 for문안에 또 다른 for문이 들어있는 것을 중첩 for문이라고 한다.

 

중첩 for문의 구조

for(int i=0; i<반복횟수; i++){

  for(int j=0; j<반복횟수; j++){

   문장;

  }

}

중첩 for문의 예시

1부터 9까지의 단 중에 짝수 단(2, 4, 6, 8)만 출력하는 for문의 예시

for(int i=2; i<10; i++){

  for(int j=2; j<10; j++){

   if(j%2==0){

      System.out.println(j+” x ”+i+” = ”+j*i);

    }

  }

}

35열을 출력하는 for문 예시

for(int i=0; i<3; i++){    // 안쪽 for문이 끝나면 줄 바꿈 3번 출력

  for(int j=0; j<5; j++){  // 줄 바꿈 없이 *5번 출력

   if(j%2==0){

      System.out.print(“*”);

    }

System.out.println();

  }

}

결과 값

*****

*****

*****

 

마지막으로

for문이 끝나면 for문에서 선언하고 생성된 변수의 데이터 저장공간은 없어진다.

예를 들어 아래의 코드에서는

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

  if(i%2==0){

    System.out.println(“for문 예시 i의 값은?”+i );

  }

}

//for문 아래, 이부분에서 for문에 사용된 i변수를 출력하지 못한다.

전역 변수와 지역 변수와 관련된 이야기인데 아직 배우지 않았으니 여기 까지만 하고 넘어간다.