声明布尔值为False,变为true(FIXED)

-1 java math boolean

这是我代码中的一个片段......

Boolean Add;
Double Answer;

Add = false;

if (Add == true);
{
Answer = (3 + 6);
System.out.print(Answer);
}
Run Code Online (Sandbox Code Playgroud)

令我感到困惑的是,在我的代码结束时,它会不断评估和打印3 + 6,即使代码专门用于使其不显示.任何帮助,将不胜感激.

编辑:谢谢大家

rge*_*man 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)


Psh*_*emo 5

条件;后删除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)