while / do-while循环不会结束

时间:2015-10-11 09:35:43

标签: java loops

据我所知,无论是C#还是Java,条件语句和循环语句中的逻辑都是相同的。

class WhileLoops {

public static void main(String args[]){


Scanner input = new Scanner(System.in);
String answer = "";
/*do{

    System.out.println("Will you be my girlfriend?(Yes/No)");
    answer = input.nextLine();
    }while(answer != "Yes" && answer != "Yes");*/

while(answer != "Yes" && answer != "yes") {

    System.out.println("Will you be my girlfriend?(Yes/No)");
    answer = input.nextLine();
    }

System.out.println("I promise to make you feel special.");

   }
}

正如您在上面的代码中看到的,我使用了do-while,而在编译和运行时只需将其中一个设置为注释。

这是我运行程序时会发生的事情: 1

2 个答案:

答案 0 :(得分:2)

使用.equals()方法。 所以,

while(answer.equalsIgnoreCase("yes")) {... }

原因是Java在使用==运算符时会比较引用。比较两个字符串时,它们指向内存中的不同位置,因此比较失败。

equals()(和equalsIgnoreCase())方法比较内存块的实际内容。

注意:这仅适用于引用类型(如字符串和其他类)。值类型(如整数和浮点数等)可以与通常的等于运算符进行比较。

答案 1 :(得分:0)

使用此:

while(!answer.toLowerCase().equals("yes"))