English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 기본 튜토리얼

Java 흐름 제어

Java 배열

Java 객체지향(I)

Java 객체지향(II)

Java 객체지향(III)

Java 예외 처리

Java 목록(List)

Java Queue(큐)

Java Map 집합

Java Set 집합

Java 입력/출력(I/O)

Java 리더/Writer

Java 다른 주제

Java while과 do...while 루프

이 튜토리얼에서는 예제를 통해 Java에서 while와 do...while 루프를 사용하는 방법을 배우고, while 루프가 컴퓨터 프로그래밍에서 어떻게 작동하는지 배우겠습니다.

컴퓨터 프로그래밍에서는 루프는 특정 조건(테스트 표현식이 false)을 만족할 때까지 특정 코드 블록을 반복하는 데 사용됩니다. 예를 들어,

그렇다면, 화면에 문장을 인쇄해야 한다고 상상해 보세요50번.50번(루프를 사용하지 않음)으로 이를 수행할 수 있습니다. 천만 번 문장을 인쇄해야 합니까? 루프를 사용해야 합니다. 루프를 사용하면 한 번에 print 문을 작성하여 무한히 실행할 수 있습니다.

이것은 단순한 예제로, 컴퓨터 프로그래밍에서 루프의 중요성을 보여줍니다. Java에서는3의 루프 유형이 있습니다:for循环,while循环과 do-while循环。

Java while 루프

Java에서 while循环의 문법은 다음과 같습니다:

while (testExpression) {
    // while循环体内的 코드
}

while循环은 어떻게 작동하는지요?

이 문법에서 괄호 내의테스트표현식(testExpression)은 부울 표현식입니다. 테스트 표현식(testExpression)의 계산 결과가 true라면

  • while 루프 내의 문장이 실행됩니다。

  • 그런 다음 테스트 표현식(testExpression)을 다시 평가합니다。

이 과정은 테스트 표현식이 false로 평가될 때까지 계속됩니다. 테스트 표현식의 계산 결과가 false라면

  • 그렇다면 while循环이 종료됩니다。

While循环의流程図

While循环의 작동 방식

示例1:while循环

//프로그램이 행을 인쇄합니다10번
class Loop {
    public static void main(String[] args) {
      
        int i = 1;
	   
        while (i <= 10) {
            System.out.println("라인 " + i);
            ++i;
        }
    }
}

출력

라인 1
라인 2
라인 3
라인 4
라인 5
라인 6
라인 7
라인 8
라인 9
라인 10

위의 예제에서 테스트 표현식(i <= 10)。그것은 i의 값이 작은지 또는 같은지 확인합니다10

초기에, 여기서 i의 값은1。따라서 테스트 표현식(testExpression)의 계산 결과는 true입니다. 따라서 while 루프 내의 print 문을 실행합니다.

请注意while循环内的语句

 ++i;

이 문장은 매번 반복하여 i 값을 증가시킵니다1。10번 반복 후, i의 값은11。그런 다음 테스트 표현식(i <= 10)가 false라면, 합계 while 루프가 종료됩니다.

테스트 표현식에 대한更多信息를 알고 싶다면 방문하세요Java 관계 연산자Java 논리 연산자

示例2:Java while 루프

//찾기 위해 프로그래밍1도100之间的自然数之和。
class AssignmentOperator {
    public static void main(String[] args) {
      
        int sum = 0, i = 100;
	   
        while (i != 0) {
            sum += i;     // 等同于 sum = sum + i;
            --i;
        }
	   
        System.out.println("Sum = " + sum);
    }
}

출력

Sum = 5050

在这里,我们有两个名为sum,i的变量,其初始值分别为0和100。

在while循环的每次迭代中,

  • 为sum变量分配值:sum + i

  • i的值减少1

循环一直进行到的值i等于0为止。

1st 重复: i = 100, sum = 0+100 = 100, 同时 --i = 99
2nd 重复: i = 99, sum = 100+99 = 199, 同时 --i = 98
3rd 重复: i = 98, sum = 199+98 = 297, 同时 --i = 97
... .. ...
... .. ...
99th 重复: i = 2, sum = 5047+2 = 5049, 同时 --i = 1
100th 重复: i = 1, sum = 5049+1 = 5050, 同时 --i = 0

Java do... while循环

do...while循环类似于while循环,但是有个关键区别,在于在检查测试表达式之前,会执行循环主体一次。

这是do...while循环的语法。

do {
   // do...while循环体内的代码
} while (testExpression);

do...while循环如何工作?

do...while循环主体执行一次(在检查测试表达式之前)。只有这样,测试表达式才会被检查。

如果测试表达式被计算为true,则执行循环体中的代码,并再次计算测试表达式。这个过程一直进行下去,直到测试表达式被计算为false为止。

当测试表达式为false时,do..while循环终止。

do ... while循环流程图

do ... while循环的工作流程图

示例3:do ... while循环

下面的程序计算用户输入的数字总和,直到用户输入0。

为了接受用户的输入,我们使用了Scanner对象。要了解更多信息Scanner,请访问Java Scanner

import java.util.Scanner;
class Sum {
    public static void main(String[] args) {
	   
        Double number, sum = 0.0;
        //创建一个Scanner类的对象
        Scanner input = new Scanner(System.in);
        do {
            //接受用户的输入
            System.out.print("输入一个数字: ");
            number = input.nextDouble();
            sum += number;
        } while (number != 0.0);  //테스트 표현식
	   
        System.out.println("Sum = " + sum);
    }
}

출력

하나의 숫자를 입력하세요: 2.5
하나의 숫자를 입력하세요: 23.3
하나의 숫자를 입력하세요: -4.2
하나의 숫자를 입력하세요: 3.4
하나의 숫자를 입력하세요: 0
Sum = 25.0

무한 반복문

반복문을 사용할 때에는 항상 조심스럽게 해야 합니다. 이유는 테스트 표현식을 잘못 설정하여 false가 never가 되면 while과 do ... while 반복문이 영원히 실행될 수 있기 때문입니다.

이것이 무한 while과 do...while 반복문입니다. 예를 들어,

//무한 while 반복문
while (true) {
   //while 반복문 본문
}

다른 예제를 들어보겠습니다.

//무한 while 반복문
int i = 100;
while (i == 100) {
   System.out.print("Hey!");
}

무한 do...while 반복문은 while 반복문과 유사하게 작동합니다.