Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 做/而不做';I don’我不能和不平等的人一起工作_Java_Loops_While Loop - Fatal编程技术网

Java 做/而不做';I don’我不能和不平等的人一起工作

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 + "?" +

由于某种原因,我的do/while不起作用,我感觉它没有注意到
!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,我想让它循环,这就是为什么