据我所知,无论是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,而在编译和运行时只需将其中一个设置为注释。
这是我运行程序时会发生的事情:
答案 0 :(得分:2)
使用.equals()
方法。
所以,
while(answer.equalsIgnoreCase("yes")) {... }
原因是Java在使用==
运算符时会比较引用。比较两个字符串时,它们指向内存中的不同位置,因此比较失败。
equals()
(和equalsIgnoreCase()
)方法比较内存块的实际内容。
注意:这仅适用于引用类型(如字符串和其他类)。值类型(如整数和浮点数等)可以与通常的等于运算符进行比较。
答案 1 :(得分:0)
使用此:
while(!answer.toLowerCase().equals("yes"))