Java:在比较字符串时,相当于!=

Boo*_*ish 1 java string boolean

我希望只要用户在忽略大小写时输入"停止"或"继续"以外的值,就会执行while循环.我怎样才能做到这一点?每当我运行程序时,即使我输入继续或停止,它也会输出"无效条目".我究竟做错了什么?

package butt;

    import java.util.*; // used for console input

    public class butt_face{

    static Scanner console = new Scanner(System.in); // needed for user input

    public static void main(String[] args) {

   String strContinue; // input from console and used for boolean

    System.out.println("Would you like to stop or continue? ");
    strContinue = console.next();
    while(!(strContinue.equalsIgnoreCase("stop")) || !(strContinue.equalsIgnoreCase("continue")))
        {   
            System.out.println("Invalid entry");
            System.out.println("Would you like to stop or continue? ");
            strContinue = console.next();
        } // end while
    if(strContinue.equalsIgnoreCase("stop")
    {
        System.out.println("Good bye!");
    } // end if
    else
        System.out.println("Poop Ship Destroyer");

    } // end of main

    } // end of class
Run Code Online (Sandbox Code Playgroud)

ric*_*350 7

你有错误的运营商:

!(strContinue.equalsIgnoreCase("stop"))
Run Code Online (Sandbox Code Playgroud)

true,除非strContinue"stop".

!(strContinue.equalsIgnoreCase("continue"))
Run Code Online (Sandbox Code Playgroud)

true,除非strContinue"continue".

strContinue不能同时"stop""continue",条件因此至少一个永远是true,和false || truetrue.

解决方案:将or(||)更改为an和(&&).