我的目标:当布尔型a=true
和b=true
只做'stuffT'。休息时更新变量
class myClass
{
public static void main (String [] args)
{
boolean a=true,b=true;
while (condition)
{
if (conditionA){a=false;break;}
else if(conditionB){b=false;break;}
}
if (a==true && b==true)
{
//do stuffT
}
}
}
但经过相遇break;
的a
和b
仍然true
值。导致我的do 'stuffT'
发生(当它不应该,如果a
或b
具有false
值)
我试着设置a
和b
到null
第一然后更新自己的价值时break
的while
这样的:
boolean a,b;
while (condition)
{
if (conditionA){a=false;break;}
else if(conditionB){b=false;break;}
}
if (a==true && b==true)
{
//do stuffT
}
但我得到错误:变量可能尚未初始化
也曾经试图break;
第一,然后更新喜欢自己的价值:
if (conditionA){break;a=false;}
else if(conditionB){break;b=false;}
,但得到错误:不到的语句(用于break;
之后更新变量)
所以,我怎么能实现我目标?
您确定'conditionA'或'conditionB'会发生一次吗?把'System.out.println(“a”);'紧跟在'a = false'之后,与b相同,以确保其中一个发生在 – azro
的地方,你确定while循环甚至进入了吗?还有conditionA和conditionB –
寻求调试帮助的问题(“为什么这个代码不工作?”)必须包含所需的行为,特定的问题或错误以及在问题本身中重现问题所需的最短代码。没有明确问题陈述的问题对其他读者无益。请参阅:[如何创建最小,完整和可验证示例](http://stackoverflow.com/help/mcve)。 – Paul