为什么此程序中的最后一个输出行不显示在NetBeans上?
问题描述:
我试图做一个简单的“存储”程序,并提示最后退出程序。如果用户输入yes,它将退出。但如果他们说不,它应该只是打印一条消息,让他们知道他们可以继续购物。由于某些原因,该消息不会出现。这是对象。为什么此程序中的最后一个输出行不显示在NetBeans上?
public class HelloShopper1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Hello Shopper, what is your name?\n");
String input = scanner.nextLine();
if(!input.matches("[a-zA-Z_]+")) {
System.out.println("Nice try " + input + " . Get out of my store!");
} else {
System.out.println("Thank you, " + input + ". It is my pleasure to help you today.");
System.out.println("Do you want to close this program?");
String input1 = scanner.nextLine();
System.out.println(input1);
if(input1 == "yes") {
System.exit(0);
if(input1 == "no") {
System.out.println("Thank god. Please continue shopping.");
}
}
}
}
答
import java.util.*;
public class HelloShopper1
{
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
System.out.print("Hello Shopper, what is your name?\n");
String input = scanner.nextLine();
if(!input.matches("[a-zA-Z_]+"))
{
System.out.println("Nice try " + input + " . Get out of my
store!");
}else{
System.out.println("Thank you, " + input + ". It is my pleasure to
help you today.");
System.out.println("Do you want to close this program?");
String input1 = scanner.nextLine();
if(input1.equalsIgnoreCase("yes"))
{
System.exit(0);
}
if(input1.equalsIgnoreCase("no"))
{
System.out.println("Thank god. Please continue shopping.");
}
}
}
}
不要使用''==比较字符串。使用'.equals(...)'或'.equalsIgnoreCase(...)'方法。理解'=='检查*引用*相等性,而方法反而做你真正感兴趣的测试:*功能*相等。 –