Java 程序产生错误的输出

Java 程序产生错误的输出,java,Java,下面的程序有问题。我现在基本上是Java新手 代码如下所示: public class IfElseIf{ public static void main(String []args) { int date=26; int month=9; int year=1995; if ((date>=1 | date <=10) || (month>=1 | month <=4) || year

下面的程序有问题。我现在基本上是Java新手

代码如下所示:

public class IfElseIf{

     public static void main(String []args)
     {
        int date=26;
        int month=9;
        int year=1995;
        if ((date>=1 | date <=10) || (month>=1 | month <=4) || year==1995)
        {
            System.out.println("Your bday is in between 1-10/1-4/1995");        

        }
        else if((date>=11 | date <=20) || (month >=5 | month <=8) || year==1995)
        {
            System.out.println("Your bday is in between 11-20/5-8/1995");
        } 
        else if((date>=21 | date<=31) || (month >=9 | month <=12) || year==1995)
        {
            System.out.println("Your bday is in between 21-31/9-12/1995");
        }
        else
        {
            System.out.println("Your bday not found");
        }
     }
}

这里可能有什么问题?

您使用了错误的运算符
是按位的“OR”,您需要逻辑的“and”,即
&

谢谢Marcus的帮助。我也发现了同样的情况。OP还需要用“和”替换他的短路“或”。
Your bday is in between 1-10/1-4/1995