2014-09-05 96 views
0

Java新手,參加大學課程。Java:while循環不返回

我正在編寫一個程序,要求用戶提供他們的網絡包,以便能夠計算他們的賬單。這裏是我要求他們的包裹的片段,並且必須確認他們已經回答了A,B或C.

由於某種原因,即使我輸入「a」也會進入while循環..

//Create Keyboard scanner 
    Scanner keyboard = new Scanner(System.in); 

    //Get user package 
    String servicePackage; 
    System.out.println("Enter your internet package: A, B, or C"); 
    servicePackage = keyboard.nextLine(); 
    servicePackage = servicePackage.toUpperCase(); 
    System.out.println(servicePackage);//This line is for debugging 

    //Validate User Package Input 
    while (servicePackage != "A" && servicePackage != "B" && servicePackage != "C"){ 
    System.out.println("Please enter a valid internet package (A, B or C)"); 
    servicePackage = keyboard.nextLine(); 
    servicePackage = servicePackage.toUpperCase(); 
    System.out.println(servicePackage);//for debugging 
    } 
    System.out.println(servicePackage);//for debugging 

不知道它是否相關,但我使用jGrasp。

任何幫助表示讚賞!

回答

0

「string」(聲明)==「string」返回false。你應該使用equals(「string」.equals(「string」)返回true)或equalsIgnoreCase(例如:「STRING」.equalsIgnoreCase(「string」)return也是如此)

+0

它並不總是返回false。 – 2014-09-05 23:13:34