gpt4 book ai didi

java - 逻辑或在 while 循环中无法正常工作

转载 作者:行者123 更新时间:2023-12-01 19:55:10 27 4
gpt4 key购买 nike

问题是,while 循环中的第一个条件即使为 true,也根本不会执行。如果我从 while 循环中删除逻辑 OR 并只编写第一个条件 (selection.compareToIgnoreCase("O") >0),它就可以正常工作。但如果有两个条件用逻辑或,就不行了。

我尝试使用equals(),我还尝试使用否定逻辑while(!selection.equals("O") || !selection.equals("E"))。第二个条件可以正常工作,但第一个条件根本不起作用。

public class OddsOrEvens {
public static Scanner sc = new Scanner(System.in);
public static void main(String[] args){
System.out.println("Let’s play a game called \"Odds and Evens\"");
System.out.println("Whats your name ? ");
String name = sc.nextLine();
System.out.println("Hi "+ name +", which do you choose? (O)dds or (E)vens?");
String selection = sc.nextLine();
System.out.println("selection: " + selection);

while (selection.compareToIgnoreCase("O") >0 || selection.compareToIgnoreCase("E") >0){
System.out.println("Please enter the correct choice. Select 'O' for odds or 'E' for evens");
selection = sc.next();
}

if(selection.equalsIgnoreCase("O")){
System.out.println(name + " has picked Odds! The computer will be evens.");
}else if (selection.equalsIgnoreCase("E")){
System.out.println(name + " has picked Evens! The computer will be Odds.");
}
}

}

最佳答案

您的字符串比较不正确。 Compareto 对于小于/等于/大于返回 -1/0/1。

更清晰的方法是使用 toUppercase().equals(....

    while (!selection.toUpperCase().equals("O") && !selection.toUpperCase().equals("E")){

关于java - 逻辑或在 while 循环中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49894403/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com