Java中的'for'循环中断不起作用

use*_*165 -2 java for-loop

我有以下代码:

private boolean result = false;
public boolean checkHourExist(int hourfrom,
                              int minutefrom,
                              int hourto,
                              int minuteto,
                              int day,
                              int templateId)
{
    List<templates> t = getAllTemplatesWithDays();

    for (templates tem : t)
    {
        if(day == -1 | tem.Temp_DayId == day)
        {
            if(tem.Temp_HourFrom  >= hourfrom & tem.Temp_HourTo == hourto )
            {
                if(tem.Temp_HourFrom  == hourfrom)
                {
                    if(tem.Temp_MinFrom == minutefrom )
                    {
                        result=  true;
                        break;
                    }
                    else if(minutefrom < tem.Temp_MinFrom  &  minuteto >= tem.Temp_MinTo )
                    {
                        result =  true;
                        break;
                    }
                }
                else
                {
                    result =  true;
                    break;
                }
            }
            else if(tem.Temp_HourFrom  == hourfrom  & tem.Temp_HourTo < hourto )
            {
                result =  true;
                break;
            }
            else if(tem.Temp_HourFrom  > hourfrom  & tem.Temp_HourTo < hourto )
            {
                result =  true;
                break;
            }
        }
    }
    return result;
}
Run Code Online (Sandbox Code Playgroud)

当代码进入我if的一个时,循环永远不会中断并继续直到完成,并且我的变量结果不会采用真值.我认为这可能是愚蠢的,但我看不出有什么不妥.

小智 8

你将不得不加倍您|&if秒.

||手段或
&&手段和

|并且&是双向运营商.

为了澄清我的答案,你的break条件对我来说似乎很好,我在代码中看到的唯一真正问题是我提到的运算符.