do while 循环中的 while 后面没有分号,即使代码没有抛出语法错误或编译时错误,为什么

Man*_*thi 1 java loops do-while

import java.util.*;
import java.lang.*;
import java.io.*;

class Ideone
{
    public static void main (String[] args) throws java.lang.Exception
    {
        int i = 0;
        do while ( i < 10 )
        System.out.print("The value of i is " + i);
        while ( i > 10 ) ;
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么这段代码没有抛出语法错误?while后面没有分号。

Ole*_*.V. 5

您的代码是这样理解的:

\n\n
    int i = 0;\n    do {\n        while (i < 10) {\n            System.out.print("The value of i is " + i);\n        }\n    } while (i > 10);\n
Run Code Online (Sandbox Code Playgroud)\n\n

do与第二个耦合,while而不是与第一个耦合。\xe2\x80\x99 习惯上在和之间有一个块语句( {\xe2\x80\xa6 }),但 Java 允许那里有任何语句,包括语句。dowhilewhile

\n\n

(顺便说一句,您的内部循环是一个无限循环,因此您的代码片段不会终止\xe2\x80\x99t。但这不是您要问的。)

\n