首页 > 解决方案 > 循环总是执行两次

问题描述

我目前正在做一个学校项目,在那个项目中,我必须询问用户他/她的性别,然后显示一个有效的错误。但由于某种原因,循环总是在让用户再次输入之前执行两次。例子:

Veuillez entrer le sex de l'individu f/F ou h/H: e

Erreur veuillez entrer des valeurs valides
Veuillez entrer le sex de l'individu f/F ou h/H: 

Erreur veuillez entrer des valeurs valides
Veuillez entrer le sex de l'individu f/F ou h/H: 

这是代码

 System.out.println ("Veuillez entrer le sex de l'individu f/F ou h/H: "); //first time asking for user input
 sex = Clavier.lireChar();

 while ((sex != ('f') || sex != ('F')) || (sex != ('h') || sex != ('H'))){ 
       System.out.println ("Erreur veuillez entrer des valeurs valides");  //error message
       System.out.println ("Veuillez entrer le sex de l'individu f/F ou h/H: "); //asking for user inoput again
       sex = Clavier.lireChar();
 }
 if (sex == ('f') || sex == ('F')) {
       nbFemmes = nbFemmes + 1;
 } else if (sex == ('h') || sex == ('H')) {
       nbHommes = nbHommes +1;
 }                        

标签: javaloopsif-statement

解决方案


问题在于您的 while 条件逻辑。请尝试以下操作并确保您理解它。如果您不了解条件逻辑,请告诉我。快乐编码!

while ((sex != ('f') && sex != ('F')) && (sex != ('h') && sex != ('H'))){ 
   System.out.println ("Erreur veuillez entrer des valeurs valides");  //error message
   System.out.println ("Veuillez entrer le sex de l'individu f/F ou h/H: "); //asking for user inoput again
   sex = Clavier.lireChar();
}

推荐阅读