2016-06-04 7 views
-2

Vous rencontrez des problèmes avec le programme ci-dessous. Je suis fondamentalement novice en Java en ce moment.Le programme produit un résultat erroné. Sortie

Le code ressemble ci-dessous:

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"); 
     } 
    } 
} 

sur l'exécution de ce qui précède, il me donne le résultat suivant:

Your bday is in between 1-10/1-4/1995 

Ce qui pourrait être peut-être mal ici?

Répondre

1

Vous utilisez les mauvais opérateurs; | est "OR" au niveau du bit, et vous voulez logique "ET", qui est &&.

+0

Merci Marcus pour votre aide. J'ai aussi remarqué la même chose. –

+0

OP doit également remplacer son court-circuit "OU" par "ET". – Tom