首页 > 解决方案 > do while循环中的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 ) ;
    }
}

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

标签: javaloopsdo-while

解决方案


您的代码以这种方式被感知:

    int i = 0;
    do {
        while (i < 10) {
            System.out.print("The value of i is " + i);
        }
    } while (i > 10);

do与第二个而while不是第一个耦合。习惯上在 and 之间有一个块语句 ( ... {) },但 Java 允许其中的任何语句,包括语句。dowhilewhile

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


推荐阅读