a == b的替代方法,没有布尔值

时间:2015-06-16 07:05:14

标签: java boolean-logic

我做了简单的程序。我想在用户输入“5”时停止它。

相关代码:

do { 
   System.out.println("Enter 5 to quit");    
   a = scanner.nextInt();     
   b = a==5;     
} while (b = true);

当然早些时候我命名变量(int a,boolean b等)

键入时为什么不起作用:

}while (b ==5)

PS。有没有办法重构代码(更改为 )?

5 个答案:

答案 0 :(得分:3)

做的时候

}while (b = true);

您要将true的值分配给b,以便它始终为真

你想要的是

}while (b != true);

}while (!b);

答案 1 :(得分:1)

如果输入5应该让你退出循环,你的条件应该是:

do {
    ...
} while (!b); // or while (b == false)
只有输入5后,

while (b == true)while (a == 5)才会让您进入循环。

答案 2 :(得分:0)

do { 
   System.out.println("Enter 5 to quit");     
} while (scanner.nextInt() != 5);

答案 3 :(得分:0)

while (b = true);

  

你使用= here(赋值)代替==(关系)

     

然后你用过这个:     b = a==5;   现在按照运算符优先级,首先执行== 5,这可能会返回true或false。

     

这不会起作用:while (b ==5)因为它与Java中的while (b ==true)不同,在C / C ++中,   true是任何非零值,false是零。在Java中,true和false是非数字值   不涉及零或非零。

     

所以,你可以尝试:

while (b == true);

while (a!=5);

答案 4 :(得分:0)

虽然您需要仔细阅读java的基础知识,但让我回答您的问题

} while (b == 5);

没有工作。这是因为你试图比较一个布尔值(你说你已声明b为布尔值)和5(这是一个整数)。