如果OR语句不能正常工作

时间:2013-07-02 07:12:44

标签: java if-statement

几乎不好意思问这个,但我似乎无法找到问题...

我收到了这个声明:

if (name_region.matches("")){
   System.out.println("He shows this");
}

if (region.contains(name_region.substring(0, 2))||(firstLine == true)||(name_region.matches(""))){
   System.out.println("he doesn't show this");
}

他通过了第一个,但没有通过第二个 虽然我认为它也应该通过第二个,因为它是一个OR语句对吗?

我在这里做错了什么?

1 个答案:

答案 0 :(得分:4)

我相信name_region.substring(0, 2)正在抛出异常。尝试重新排列if()

中的表达式
if (name_region.matches("")||
    region.contains(name_region.substring(0, 2))||
    firstLine){
   System.out.println("he doesn't show this");
}

||是短路OR运算符,因此如果第一个表达式为true,则其他表达式将不会被评估。