当前位置: 首页 > 面试题库 >

在Java中使用while循环无法实现的语句错误[重复]

步嘉德
2023-03-14
问题内容

这个问题已经在这里有了答案

7年前关闭。

可能重复:
为什么此代码给出“无法访问的语句”错误?

这个问题似乎很简单,我在一本书中发现了这个问题。如果有人帮助我弄清楚为什么我出错了。

    do {
        System.out.print("inside do");
    } while (false);
    while (false) { // error
        System.out.print("inside while");
    }
    System.out.print("outside");

我认为,根据我的看法,输出应该 在dooutside内部* 。但是,它显示了 编译器错误:Unreachable Statement
。然后,我试图找出原因,它显示了 **编译错误:Unreachable Statement
。所以,我像这样更改上面的代码

  boolean i = false;  
  do {
        System.out.print("inside do");
    } while (false);
    while (i) { // ok
        System.out.print("inside while");
    }
    System.out.print("outside");

现在,它显示了预期的输出,即 在dooutside内部 。所以,我的问题是-第一种和第二种情况有什么区别?另外,当我检查

if(false){ 
  //something here
   }

然后,以上代码将正确执行。


问题答案:

前两个示例之间的主要区别在于,在第一种情况下,条件是一个常数,而在第二种情况下,则不是。

例如,如果您更改boolean i = false;final boolean i = false;,则由于我现在是一个常数,因此将得到相同的编译错误。

JLS
14.21
中定义了不可达语句的规则。特别是if对允许常量的if(DEBUG)结构进行了特殊处理DEBUG

至于do / while,里面的语句将被执行一次,所以没有问题。

有关常量的更多详细信息,请参见此相关文章。



 类似资料:
  • 在下面的代码中,我试图提示用户输入一个数字,如果它小于1,则要求输入另一个正数。 在输入正数之前,它似乎一直在工作,但在给出正数后,程序将打印最终的错误消息。 输入正数后,如何阻止打印此错误消息?

  • 我正在为学校做一个简单的Java计算器,效果很好。但是,我需要添加一个while循环,询问用户是否要继续是/否。不过,我不知道应该将while语句放在哪里。我试着把if语句放在上面,我试着把它放在下面,然后把它添加到每个if和else if语句中,但仍然无法让它工作。在if和else-if语句中,应该在哪里放置while循环,以获得运行while循环的所有选项?

  • 本文向大家介绍C#中while循环语句用法实例详解,包括了C#中while循环语句用法实例详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#中while循环语句用法。分享给大家供大家参考。具体实现方法如下: 在C#中while循环是我们经常会用到的一种循环语句,while循环特点是直到条件为零时才跳出循环,当然中间可以利用其它函数直接跳出,对于while的具体用法有必要做一个较为详尽

  • Python 中,while 循环和 if 条件分支语句类似,即在条件(表达式)为真的情况下,会执行相应的代码块。不同之处在于,只要条件为真,while 就会一直重复执行那段代码块。 while 语句的语法格式如下: while 条件表达式:     代码块 这里的代码块,指的是缩进格式相同的多行代码,不过在循环结构中,它又称为 循环体。 while 语句执行的具体流程为:首先判断条件表达式的值,

  • 本文向大家介绍ASP中if语句、select 、while循环的使用方法,包括了ASP中if语句、select 、while循环的使用方法的使用技巧和注意事项,需要的朋友参考一下 具体的介绍就不多说了,大家看下实例就可以了 考虑后期的便于阅读,呐喊教程小编再为大家整理一下 asp if语句 ①if A then B ②if A then B end if ③if A then B else C e

  • 本文向大家介绍C#中循环语句:while、for、foreach的使用,包括了C#中循环语句:while、for、foreach的使用的使用技巧和注意事项,需要的朋友参考一下 循环结构可以实现一个程序模块的重复执行,它对于我们简化程序,更好地组织算法有着重要的意义。C#为我们提供了若干种循环语句,分别适用于不同的情形,下面依次介绍。 C#中循环语句:while、for、foreach   1、wh