可能重复:if语句末尾有分号
我在编程时,在代码中发现了一个bug,这是因为“if”语句后面有一个分号,它的长方体“{xxx}”被执行时就好像它有自己的作用域一样--所以一切都会被编译。
这回避了一个问题,为什么是:
if (x != null);
Java中的一个可能的语句,它似乎是一行无用的代码,可能会产生很多bug等等。
从我看来(我可能错了),这样做只有一个原因。
想象x
是一个getter,然后从当前类中获取变量x
,您执行另一段代码(或者可能只是缓存x
的响应)。
也就是说,如果是这样的话,我认为是x 也可以。
这条线本质上等同于:
if (x != null) {
}
但是,您可以创建一条线,如:
if (x != null) System.out.println(x);
所以它的存在是为了支持这种代码的执行,但您的示例只是我的第一个示例的简写。
if语句以结尾,这是我的错误,被打印出来,即使很明显这两个值都为null。有人能解释为什么吗?
问题内容: 我在处理应用程序时犯了一个编码错误,它是对null引用的测试。我花了几个小时才发现问题所在,但是我不明白的是为什么代码如此表现。 if语句以结束,这是我的错误,即使很明显两个值都为null ,也将打印出来。有人可以解释为什么吗? 问题答案: 该分号结束了一条语句(一个空的语句),因此编译器将您的代码翻译为以下内容: 换句话说,如果expression是,它将执行空的代码块。然后,无论是
在java中是否可以将if语句转换为switch语句?
我需要解释一下,为什么执行了while()语句中的if()块。据说:while语句计算表达式,表达式必须返回布尔值。如果表达式的计算结果为true,则while语句将执行while块中的语句。请看一下这个代码: 一旦变量x超过5,不应该将其视为false吗?那么,如果执行块,该如何执行呢?基本上,它似乎为表达式5返回了真正的布尔值=5. 谢谢你的解释!
我的java小程序分配有问题。出于某种我无法理解的原因,每当我选中复选框时,我的所有if语句都会立即触发。程序应该更新总价,并在每次按下方框时通知用户。我们必须使用复选框,而不是单选按钮或JCheckBox,并且程序必须编写为小程序。这里是我的代码链接。
问题内容: 假设我有一个条件: 现在假设那很可能会收到一个真实的值,为什么我要关心左边的那个? 如果将它们都放在方括号中,那么我(作为代码的程序员)知道双方都是需要的。 问题是,我的教授在他的演讲笔记上写道,我应该在左边加上“更可能的变量以得到一个真”。 有人可以解释一下好处吗?好吧,我把它放在左边…我正在获得什么?运行 ? 问题答案: 它不只是在左侧选择最可能的条件。您也可以在左侧设置一个安全门