java,用户输入Y/N,选择程序继续还是结束,如何实现

import java.util.Scanner;
public class PrintArguments {
public static void main(String[] args) {
String user="";
Scanner in=new Scanner(System.in);
do{
System.out.println("adsj");
System.out.println("是否继续(Y/N)");
user=in.next();
}
while(user=="Y");
}
}
为什么这个不行,求指教

因为==比较的是两个字符串的地址值是否相等,在java,String类是用final修饰的不可变类.用new创建的对象放在对内存中,用“”引起来的默认为是常量,放在常量池中;即使它们的值相等,但地址值不相等,用==比较返回值为false。只能用equals()方法来比较其值是否相等。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-01-11
public class Test2 {

public static void main(String[] args) {

String a =" ";
do {
Scanner scan = new Scanner(System.in);
System.out.println("请输入第一个数:");
int num1 = scan.nextInt();
System.out.println("请输入第二个数:");
int num2 = scan.nextInt();
System.out.println("请输入运算符:");
String c = scan.next();
switch(c) {
case "+":
System.out.println("运算结果是:"+(num1+num2));
break;
case "-":
System.out.println("运算结果是:"+(num1-num2));
break;
case "*":
System.out.println("运算结果是:"+(num1*num2));
break;
case "/":
if(num2==0) {
System.out.println("除数不能为零,请重新输入");
}else {
System.out.println("运算结果是:"+(num1/num2));
}
break;
}
System.out.println("是否继续? Y 是,其他键结束");
a = scan.next();
}while(a.equals("Y"));

}

}
第2个回答  2013-09-13
==只能用于判断是不是同一个字符串
判断字符串相等需要user.equals()
第3个回答  推荐于2018-03-02
while(user.equals("y"));这样就可以了,
第4个回答  2015-10-29
获取用户输入的类容,然后写个判断是Y还是N,然后给出对应的操作
相似回答