做的同时永远循环

Jam*_*per -1 java while-loop do-while

我遇到了这种方法的问题,我永远坚持"抱歉你必须指定一个Deeppan或瘦基地,再试一次:"即使我输入jimmy,harry,deeppan,thin,Thin ..等我输入之后deeppan或thin,我希望String存储在变量"size"中并返回

我缺少什么想法?

 public String Input(){


    String size;

    Scanner sc = new Scanner(System.in);
    System.out.println("thin or thick: ");

    do {
        size = scan.next();
        if ( !size.equalsIgnoreCase( "thick") || !size.equalsIgnoreCase( "thin" )) {
            System.out.print("Sorry you must specify a thick or thin base, try again: ");
        } else {
            break;
        }
    } while ( true );

    return size;
} 
Run Code Online (Sandbox Code Playgroud)

Ben*_*Ben 9

改变你的|| 对于if条件中的&&.如果你键入'thin',那么条件将成立,因为它不是deeppan,反之亦然.

  • 这可能是有趣的http://en.wikipedia.org/wiki/De_Morgan%27s_laws (2认同)

Kor*_*tor 5

你内心的声明if总是如此true.

你应该使用其中之一

!size.equalsIgnoreCase( "Deeppan") && !size.equalsIgnoreCase( "thin" )
Run Code Online (Sandbox Code Playgroud)

要么

!(size.equalsIgnoreCase( "Deeppan") || size.equalsIgnoreCase( "thin" ))
Run Code Online (Sandbox Code Playgroud)