CodeGym /Java Blog /무작위의 /자바 For 루프
John Squirrels
레벨 41
San Francisco

자바 For 루프

무작위의 그룹에 게시되었습니다
Mark Zuckerberg가 컴퓨터가 명령 반복에 정말 뛰어나다고 언급한 적이 있습니다. 우리는 같은 일을 연속으로 여러 번 반복하면 지겨워지지만 컴퓨터는 수백만 번, 수십억 번을 해도 결코 지루하지 않습니다. 모든 Facebook 사용자에게 인사말을 보내려고 하면 충분한 시간을 가질 수 있는 사람이 없습니다. 그러나 몇 줄의 코드를 작성하여 컴퓨터가 이 작업을 해결하도록 만들 수 있습니다. 이것이 루프가 작동하는 방식입니다. 그들은 우리가 같은 일상적인 행동을 반복하지 않도록 합니다. Java에서 가장 널리 사용되는 루프는 소위 정의된 루프 또는 for 루프입니다.

Java에서 for 루프를 작성하는 방법은 무엇입니까? 일반적으로 For 루프

For 루프는 특정 횟수 동안 일부 명령문을 실행합니다. 예를 들어, "나는 절대 그렇지 않아, 호호호"라고 50번 쓰거나 모든 친구들에게 초대장을 보내는 것이 이런 종류의 루프에 대한 전형적인 작업입니다. 가장 일반적인 for 루프 버전의 구문:

for ([counter initialization]; [checking conditions]; [changing of the counter])
{
    //  statements
}
초기화 표현식은 한 번 실행된 다음 부울 표현식이어야 하는 조건이 평가됩니다.
  • 루프가 시작되면 초기화가 실행됩니다.
  • 조건이 거짓으로 평가되면 루프가 작업을 중지합니다.
카운터는 변경되며 일반적으로 루프를 통한 각 반복 후에 증가(또는 감소)가 발생합니다. 세 가지 루프 표현식(초기화, 조건 확인, 카운터 변경) 중 하나를 건너뛸 수 있습니다. 루프의 다음 단계 전에 루프 조건을 확인합니다. 조건이 거짓이면 프로그램은 루프를 벗어나 for 구문 다음의 명령을 계속 진행합니다. 여기에 for 루프의 블록 다이어그램이 있습니다. Java의 For 루프 - 2

Java에서 for 루프를 사용하는 방법. 간단한 예입니다.

다음은 특정 Java for 루프 예제입니다. "안녕하세요!" 이 줄의 번호가 있는 새 줄에서 나올 때마다 문자열입니다. 다음 출력을 얻어야 합니다.
  1. 안녕하세요!
  2. 안녕하세요!
  3. 안녕하세요!
  4. 안녕하세요!
  5. 안녕하세요!
  6. 안녕하세요!
  7. 안녕하세요!
  8. 안녕하세요!
  9. 안녕하세요!
  10. 안녕하세요!
다음은 이 문제를 해결하는 Java 프로그램입니다.

public class ForExample {
   public static void main(String[] args) {
       for (int i = 0; i < 10; i++) {
           System.out.println(i + 1 + ". Hello!");
       }
   }
}

어떻게 작동합니까?

1단계. 카운터 i = 0. 루프는 조건 i << 10을 확인하므로 루프 문이 실행됩니다. "1. Hello!"라는 문구를 인쇄합니다. 1은 문자열 i + 1입니다(0부터 계산하기 때문에 첫 번째 줄이 여전히 첫 번째 줄임). 카운터 i가 증가합니다. 이제 i = 1. 2단계. 카운터 i = 1. i < 10이므로 "2. Hello!"라는 문구가 있습니다. 및 i + 1 = 2. … 10단계. 카운터 i = 9, "10. Hello!" 그리고 i는 10으로 증가합니다. 단계 11. 카운터 i = 10. i < 10 ? 아니요, 거짓입니다. 따라서 루프가 종료됩니다. Java의 For 루프 - 3

While 루프와 for 루프: 차이점과 유사점

Java에서 무한 루프 또는 while 루프는 부울 조건이 충족되면 계속 실행됩니다. while 루프의 구문:

while (boolean condition)
       {
            loop statements...
       }
꽤 자주 사용하려는 하나의 루프를 선택할 수 있습니다. 때때로 그들은 매우 가깝고 둘 다 사용할 수 있습니다. 예를 들어, 다음은 while 루프로 작성된 동일한 작업에 대한 코드입니다(행 번호와 함께 "Hello!"를 10번 작성).

public class ForAndForEach {
   public static void main(String[] args) {
       int j = 0;  //  we use the counter this way 
       while (j < 10) {
           System.out.println(j + 1 + ". Hello!");
           j++;
       }
   }
}
그러나 전문 프로그래머는 while 루프를 별로 좋아하지 않으며 가능하면 for 루프를 사용하려고 합니다.
을 위한 하는 동안

반복 횟수를 이미 알고 있는 경우 for 루프를 사용합니다.

반복 횟수를 정확히 알지 못하는 경우 while 루프를 사용합니다.

초기화, 조건 확인 및 카운터 변경은 이미 루프 구문에 포함되어 있습니다.

루프 내부의 초기화 및 조건 확인. 문에 카운터를 추가로 사용할 수 있습니다.

다음에 대한 무한 루프:


for(;;){
	System.out.println("working...");
}

무한 루프 동안:


while(true){
	System.out.println("working...");
}

Java에서 for 루프를 종료하는 방법

일반적으로 for 루프는 흐름처럼 실행되며 루프를 종료하는 자연스러운 방법은 조건이 거짓 값을 취하는 경우입니다. 그러나 조건의 거짓 값을 얻기 전에 루프를 종료할 수 있는 두 개의 제어문이 있습니다. 즉, 중단 및 계속입니다.
  • break를 사용하면 루프 조건이 false로 평가된 것처럼 현재 루프 본문을 종료할 수 있습니다.
  • continue는 명령문을 실행하지 않고 루프가 다음 단계(카운터 반복)로 점프하도록 만듭니다.
break and continue를 사용하여 다음 문제를 해결해 봅시다. 이름 배열이 있고 낯선 사람을 제외한 이 배열의 모든 사람에게 인사합니다. 따라서 루프 중에 "Stranger" 문자열을 만나면 종료합니다(다른 사람에게 인사하기 위해 자리를 비우고 멈춥니다).

public class ForBreakExample {
   public static void main(String[] args) {
       String[] names = {"Mike", "Dustin", "Stranger", "Lucas", "Will"};
       for (int i = 0; i < names.length; i++) {
//  how to break out of a for loop, java: check if we have any "Stranger" in  //  our array            
if (names[i].equals("Stranger")) {
               System.out.println("I don't chat with strangers");
               break;
           }
           System.out.println("Hello," + names[i]);
       }
   }
}
프로그램 실행 결과는 다음과 같습니다.

Hello,Mike
Hello,Dustin
I don't chat with strangers
보다? 우리는 Lucas와 Will에게 인사하기 전에 루프에서 도망쳤습니다. 이제 계속을 사용하여 "낯선 사람"을 무시하고 다른 친구에게 인사하기 위해 루프 내부에 머물러 봅시다.

public class ForContinueExample {
   public static void main(String[] args) {
       String[] names = {"Mike", "Dustin", "Stranger", "Lucas", "Will"};
       for (int i = 0; i < names.length; i++) {
           if (names[i].equals("Stranger")) {
               System.out.println("I don't chat with strangers");
               continue;
           }
           System.out.println("Hello," + names[i]);
       }
   }
}
결과는 다음과 같습니다.

Hello,Mike
Hello,Dustin
I don't chat with strangers
Hello,Lucas
Hello,Will
훌륭한! 우리는 모든 친구들에게 인사를 건넸지만 낯선 사람에게는 말을 걸지 않았습니다.

for 루프 또는 for-each의 향상된 버전

For-each는 배열 또는 컬렉션의 모든 요소를 ​​처리해야 할 때 사용되는 일종의 for 루프입니다. 실제로 for-each라는 문구는 이 주기에서 사용되지 않습니다. 구문은 다음과 같습니다.

for (type itVar: array)
{
    Block of operators;
}
여기서 type 은 반복 변수의 유형(배열의 데이터 유형과 동일)이고 ItVar 는 그 이름이고 array는 배열이거나 다른 데이터 구조(예: ArrayList)가 있을 수 있습니다. 보시다시피 카운터가 없으며 반복 변수는 인덱스 값이 아닌 배열 또는 컬렉션의 요소를 반복합니다. 이러한 루프가 실행되면 반복 변수에 배열 또는 컬렉션의 각 요소 값이 순차적으로 할당된 후 지정된 문 블록(또는 연산자)이 실행됩니다. 주의: for-each 루프는 배열 및 java.lang.Iterable 인터페이스를 구현하는 모든 클래스에 적용할 수 있습니다. 낯선 사람을 무시하고("Stranger") 이번에는 for-each 루프를 사용하여 친구에게 인사하는 동일한 문제를 해결해 보겠습니다.

public class ForEachExample {
   public static void main(String[] args) {
       String[] names = {"Mike", "Dustin", "Stranger", "Lucas", "Will"};
	//  for each loop, Java code
       for (String name : names) {
           if (name.equals("Stranger")) {
               System.out.println("I don't chat with strangers");
               continue;
           }
           System.out.println("hello, " + name);
       }
   }
}
배운 내용을 보강하려면 Java 과정에서 비디오 강의를 시청하는 것이 좋습니다.
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION