下面的Awnsers工作了,谢谢你们!
boolean Again = true;
while (Again = true)
{
String input = JOptionPane.showInputDialog(null, "Input Za Number");
try
{
int input2 = Integer.parseInt(input);
int R1 = 1;
int R2 = 1;
while (R2 < input2)
{
R1 = R1 * 2;
R2 = R2 + 1;
JOptionPane.showMessageDialog(null, R1);
}
String Ag = JOptionPane.showInputDialog(null, "Do it again? (Y/N)");
if (Ag.equals("N"))
{
Again = false;
}
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null, "What is '" + input + "'?!?! Enter an actual number.");
}
}
我把那些不起作用的部分放在我希望的粗体中。它是&#34; if(Ag.equals(&#34; N&#34;))&#34;。我试图这样做,如果用户输入&#34; N&#34;,那么程序将停止运行。否则它将循环并继续前进。问题是,即使我键入N,它也会循环。我没有错。请帮忙,我很困惑:(
答案 0 :(得分:4)
这是为什么专业开发人员将始终使用
的一个主要示例if ( null == object )
在
if ( object == null )
如果输入错误,例如以下
// as posted
while ( Again = true ) // works, always true
// the other way
while ( true = Again ) // compiler error
每次重复循环时,发布的方式是将值 true 重新分配给再次;如果语句是用另一种方式编写的,编译器会抛出一个错误,说明你不能为 true 赋值。
只使用单个等号,每次到达此处时,您都会将 Again 的值重新分配给 true ,其中double等于检查是否相等。
在这种情况下,你真的不需要true
,你可以简单地使用
while ( Again )
// or again
while ( true == Again )
答案 1 :(得分:2)
当您执行类似
的操作时while (Again = true)
您实际上是将变量分配给true
,
让你的无限 ......
改为
while (Again) // since is boolean you dont need to compare against a true value..