我是Java的新手,因为我遇到的错误,我发现它非常复杂。所以我对这段代码有疑问:
主类:
public class Main {
public static void main(String[] args){
Answer a = new Answer();
String ans = null;
while(ans != "A"){
ans = a.create();
System.out.print(ans + "\n");
}
}
}
答案课:
import java.util.Scanner;
public class Answer {
public String create(){
Scanner s = new Scanner(System.in);
return s.next();
}
}
我希望程序允许我写一些东西。然后,如果我写的不是字母A,程序必须允许我写别的东西,否则必须停止。但是,即使我写“A”,程序仍然保持,允许我写其他东西。代码有什么问题?
答案 0 :(得分:2)
使用!=运算符无法正确比较字符串。相反,您应该使用while(!ans.equals("A"))
。其次,尽量不要在create方法中重新创建Scanner对象。这是一种资源浪费。