这是我代码中的一个片段......
Boolean Add;
Double Answer;
Add = false;
if (Add == true);
{
Answer = (3 + 6);
System.out.print(Answer);
}
Run Code Online (Sandbox Code Playgroud)
令我感到困惑的是,在我的代码结束时,它会不断评估和打印3 + 6,即使代码专门用于使其不显示.任何帮助,将不胜感激.
编辑:谢谢大家
你的if病情结束时你有一个分号.Java会将其视为您if病情的主体.下面带有括号的块与if条件分离并始终运行.
删除分号,Java将使用大括号解释块作为if语句的主体.
更改
if (Add == true);
Run Code Online (Sandbox Code Playgroud)
至
if (Add == true) // no semicolon
Run Code Online (Sandbox Code Playgroud)
此外,Add已经是一个布尔值(Boolean未拆箱到a boolean).你可以说:
if (Add)
Run Code Online (Sandbox Code Playgroud)
条件;后删除if.
if (Add == true);//<-here
Run Code Online (Sandbox Code Playgroud)
如果您格式化此代码,您将获得
if (Add == true)
;
Run Code Online (Sandbox Code Playgroud)
这与放置空块后相同 if
if (Add == true)
{}//empty block
Run Code Online (Sandbox Code Playgroud)
所以这个块总是会执行,因为它实际上不再与if条件相关
{
Answer = (3 + 6);
System.out.print(Answer);
}
Run Code Online (Sandbox Code Playgroud)
BTW == true部分在条件上是多余的.你可以把它写成if (Add)
| 归档时间: |
|
| 查看次数: |
165 次 |
| 最近记录: |