为什么此程序中的最后一个输出行不显示在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."); 
      } 
     } 
    } 
} 
+1

不要使用''==比较字符串。使用'.equals(...)'或'.equalsIgnoreCase(...)'方法。理解'=='检查*引用*相等性,而方法反而做你真正感兴趣的测试:*功能*相等。 –

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."); 
     } 
     } 
     } 
     }