我遇到了一些if-else条件的问题,这是代码:
if((hour<=16 && min<30)||(hour>=21 && min>0))
{ //copy of if#3
Log.d("baja", "copy");
message="something2";
}
if ((day>=1 && month>=4) && (day<=30 && month<=9))
{ //if#1
if((hour<=16 && min<30)||(hour>=23 && min>0))
{ //if#2
message="something";
}
}//end of if#1
else
{ //else for if#1
Log.d("baja", "before if#3 ");
if((hour<=16 && min<30)||(hour>=21 && min>0)){ //if#3
Log.d("baja", "if#3");
message="something2";
}
}
问题是,如果流程进入其他地方,如果#3不起作用,但是如果#1工作正常,副本我就放在外面......问题是什么?
我现在无法发布确切的日志,但我可以看到“复制”和“之前如果#3”
答案 0 :(得分:1)
我想我知道你要做什么(如果我理解你的问题)。原因是else块附加到高级if块,而不是它的内部逻辑。如果if#1返回false,则不会发生任何事情,如果是,则它将测试#2 - &gt;如果这是假的,它将执行else语句。如果这不是您的问题,请提供堆栈跟踪请求rattmuff
if ((day>=1 && month>=4) && (day<=30 && month<=9))
{
if((hour<=16 && min<30)||(hour>=23 && min>0))
{
message="something";
}//if#2
else
{
Log.d("baja", "before if#3 ");
}//else
}//if#1
else if((hour<=16 && min<30)||(hour>=21 && min>0))
{
Log.d("baja", "if#3");
message="something2";
}//if#3