Java 做/而不做';I don’我不能和不平等的人一起工作
由于某种原因,我的do/while不起作用,我感觉它没有注意到Java 做/而不做';I don’我不能和不平等的人一起工作,java,loops,while-loop,Java,Loops,While Loop,由于某种原因,我的do/while不起作用,我感觉它没有注意到!rep,它只是循环输入任何字符。我试着只放!rep.toUpperCase().equals(“O”),它工作了,但我也想要N if (utilisateurDansListe(user) == true) { do { System.out.println("Voulez-vous vraiment supprimer " + user + "?" +
!rep
,它只是循环输入任何字符。我试着只放!rep.toUpperCase().equals(“O”)
,它工作了,但我也想要N
if (utilisateurDansListe(user) == true) {
do {
System.out.println("Voulez-vous vraiment supprimer " + user
+ "?" + " O-Oui ou N-Non");
rep = sc.next();
} while (!rep.toUpperCase().equals("O")
|| !rep.toUpperCase().equals("N"));
if (rep.toUpperCase().equals("O")) {
monApp.listeUtilisateurs.remove(utilisateurChoisi);
System.out.println("Utilisateur supprimer avec succes !");
} else
System.out.println(user + " n'a pas ete supprimer");
} else
System.out.println("Utilisateur inexistant");
你的逻辑是错误的。你想要:
while (!rep.toUpperCase().equals("O") && !rep.toUpperCase().equals("N"));
也就是说,您希望在回答(不是O
)和(不是N
)时循环运行。您还可以翻转逻辑:
while (!(rep.toUpperCase().equals("O") || rep.toUpperCase().equals("N")));
当答案不是(O
或N
)时运行。简单。你的情况总是正确的。
任何字符串始终不是“N”或“O”。您的布尔逻辑导致了以下问题-
while (!rep.toUpperCase().equals("O") || !rep.toUpperCase().equals("N"));
在这里,您实际上是在说,“而sc.next()
是不是'O'
或不是'N'
-保持循环”。问题是,sc.next()
永远无法同时满足不为“O”或不为“N”的条件。相反,请使用和条件,如下所示:
while (!rep.toUpperCase().equals("O") && !rep.toUpperCase().equals("N"));
哦,该死,那是个愚蠢的错误啊哈,非常感谢!我告诉自己,如果答案不是O或N,我想让它循环,这就是为什么