java - 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 之后没有分号。
解决方案
您的代码以这种方式被感知:
int i = 0;
do {
while (i < 10) {
System.out.print("The value of i is " + i);
}
} while (i > 10);
do
与第二个而while
不是第一个耦合。习惯上在 and 之间有一个块语句 ( ... {
) }
,但 Java 允许其中的任何语句,包括语句。do
while
while
(顺便说一句,您的内部循环是一个无限循环,因此您的代码段不会终止。但这不是您要问的。)
推荐阅读
- android - 无法通过 WIFI 连接到 firebase 数据库,但可以正常连接 4G 移动网络。奇怪的问题
- javascript - 使 div 像表单提交按钮一样
- webpack - Webpack 4 / SCSS:extract-css-chunks-webpack-plugin 和 style-loader 作为后备
- java - 选项卡布局不显示
- python - 如何使用 Python API 检索与帐户关联的所有许可证
- docker - 带有 Docker 供应商目录的 PhpStorm
- wso2 - 在 wso2 esb 中如何调用 api manager 发布的 websokcet
- java - 等待调用 shutdown() 时释放当前 HazelcastInstance 获取的锁
- tensorflow - 如何将 Tensorflow.js 的数据分类为 2d、3d 等?
- c++ - C++:模板类的Typedef