자바 루프 구조


순차 구조의 프로그램 문은 한 번만 실행할 수 있습니다. 동일한 작업을 여러 번 수행하려면 루프 구조를 사용해야 합니다.

Java에는 세 가지 주요 루프 구조가 있습니다.

  •                   while 루프

  •               do…while 루프

  •               for 루프

Java5에서는 주로 배열을 위해 향상된 for 루프가 도입되었습니다.


while 루프

while은 가장 기본적인 루프이며 구조는 다음과 같습니다.

while( 布尔表达式 ) {
	//循环内容
}

부울 표현식이 true인 한 루프 본문은 계속 실행됩니다.

Example

public class Test {
   public static void main(String args[]) {
      int x = 10;
      while( x < 20 ) {
         System.out.print("value of x : " + x );
         x++;
         System.out.print("\n");
      }
   }
}

위 예제의 컴파일 및 실행 결과는 다음과 같습니다.

value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19

do...while loop

while 문의 경우 조건이 만족되지 않으면 루프에 진입할 수 없습니다. 하지만 때로는 조건이 충족되지 않더라도 적어도 한 번은 실행해야 하는 경우가 있습니다.

do…while 루프는 while 루프와 유사하지만 차이점은 do…while 루프가 적어도 한 번 실행된다는 점입니다.

do {
       //代码语句
}while(布尔表达式);

참고: 부울 표현식은 루프 본문 뒤에 있으므로 부울 표현식을 감지하기 전에 명령문 블록이 실행되었습니다. 부울 표현식이 true로 평가되면 부울 표현식이 false로 평가될 때까지 명령문 블록이 실행됩니다.

Example

public class Test {

   public static void main(String args[]){
      int x = 10;

      do{
         System.out.print("value of x : " + x );
         x++;
         System.out.print("\n");
      }while( x < 20 );
   }
}

위 예제의 컴파일 및 실행 결과는 다음과 같습니다.

value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19

for 루프

모든 루프 구조는 while 또는 do...while로 표현할 수 있지만 Java에서는 또 다른 문인 for 루프를 제공합니다. , 일부 루프 구조를 더 단순하게 만들었습니다.

for 루프의 실행 횟수는 실행 전에 결정됩니다. 구문 형식은 다음과 같습니다.

for(初始化; 布尔表达式; 更新) {
    //代码语句
}

for 루프에 대한 지침은 다음과 같습니다.

  •                   초기화 단계가 먼저 수행됩니다. 유형을 선언할 수 있지만 하나 이상의 루프 제어 변수를 초기화하거나 빈 문일 수 있습니다.

  •               그런 다음 부울 표현식의 값을 테스트합니다. true이면 루프 본문이 실행됩니다. false인 경우 루프가 종료되고 루프 본문 다음에 오는 명령문의 실행이 시작됩니다.

  •               루프를 한 번 실행한 후 루프 제어 변수를 업데이트합니다.

  •               부울 표현식을 다시 확인하세요. 위의 프로세스를 루프로 수행합니다.

Example

public class Test {

   public static void main(String args[]) {

      for(int x = 10; x < 20; x = x+1) {
         System.out.print("value of x : " + x );
         System.out.print("\n");
      }
   }
}

위 예제의 컴파일 및 실행 결과는 다음과 같습니다.

value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19

Java Enhanced for loop

Java5에서는 주로 배열에 사용되는 Enhanced for 루프를 도입합니다.

Java의 향상된 for 루프 구문 형식은 다음과 같습니다.

for(声明语句 : 表达式)
{
   //代码句子
}

선언문: 새 지역 변수를 선언합니다. 변수 유형은 배열 요소 유형과 일치해야 합니다. 그 범위는 루프 문 블록으로 제한되며, 그 값은 이때 배열 요소의 값과 같습니다.

Expression: Expression은 액세스할 배열의 이름이거나 배열을 반환하는 메서드입니다.

Example

public class Test {

   public static void main(String args[]){
      int [] numbers = {10, 20, 30, 40, 50};

      for(int x : numbers ){
         System.out.print( x );
         System.out.print(",");
      }
      System.out.print("\n");
      String [] names ={"James", "Larry", "Tom", "Lacy"};
      for( String name : names ) {
         System.out.print( name );
         System.out.print(",");
      }
   }
}

위 예제의 컴파일 및 실행 결과는 다음과 같습니다.

10,20,30,40,50,
James,Larry,Tom,Lacy,

break 키워드

break는 주로 루프 문이나 스위치 문에서 전체 문 블록을 벗어나기 위해 사용됩니다.

break는 가장 안쪽 루프에서 벗어나 루프 아래에 있는 명령문을 계속 실행합니다.

Grammar

break의 사용법은 매우 간단하며 루프 구조의 명령문입니다.

break;

Example

public class Test {

   public static void main(String args[]) {
      int [] numbers = {10, 20, 30, 40, 50};

      for(int x : numbers ) {
         if( x == 30 ) {
	      break;
         }
         System.out.print( x );
         System.out.print("\n");
      }
   }
}

위 예제의 컴파일 및 실행 결과는 다음과 같습니다.

10
20

continue 키워드

continue는 모든 루프 제어 구조에 적용 가능합니다. 이 기능은 프로그램이 루프의 다음 반복으로 즉시 점프할 수 있도록 하는 것입니다.

for 루프에서 continue 문은 프로그램이 즉시 업데이트 문으로 점프하도록 합니다.

while 또는 do...while 루프에서 프로그램은 즉시 부울 표현식의 판단문으로 점프합니다.

Grammar

continue는 루프 본문의 간단한 문입니다.

continue;

Example

public class Test {

   public static void main(String args[]) {
      int [] numbers = {10, 20, 30, 40, 50};

      for(int x : numbers ) {
         if( x == 30 ) {
	      continue;
         }
         System.out.print( x );
         System.out.print("\n");
      }
   }
}

위 예제의 컴파일 및 실행 결과는 다음과 같습니다.

10
20
40
50