2014-10-07 31 views
-2

我們正在更新我們以前的實驗室,其中一個要求是,如果用戶輸入'。'或' - ',我們必須輸出一條消息,表示他們應該再次運行該程序並退出程序。如果用戶輸入「。」字符,我該如何結束程序。或「 - 」?

這是我到目前爲止。我不確定是否必須爲此程序使用循環。

System.out.print("\t Enter Employee Number: "); 
employeeNumber = keyboard.next().charAt(0); 
     if (employeeNumber == '.' && employeeNumber == '-'){ 
      System.out.println("\t Invalid Employee Number."); 
      System.out.println("\t Please run the program again."); 
      System.out.println("Thank you for using \"TEMPLE HUMAN RESOURCES\""); 
      System.exit(0); 

此外,變量employeeNumber是一個字符。

+0

鍵盤是什麼類型? – 2014-10-07 23:00:58

+0

是否應循環取決於您的要求。我們無法回答。 – 2014-10-07 23:01:48

+0

這是一臺掃描儀。 – user3558676 2014-10-07 23:02:21

回答

0

在第3行中,if語句中應該有條件OR運算符。如果兩個條件中的任何一個條件是真或假,就進行比較如果其中一個爲真,則整個條件設置爲真值。

if (employeeNumber == '.' || employeeNumber == '-'){ 

您可能想這樣做,而是因爲這看起來通過串的每一個字符,並告訴如果是通過布爾真或假。

String employeeNumber = keyboard.next(); 
Boolean works = true; 
for(int a = 0; a < employeeNumber.length(); a++) { 
    if (employeeNumber.charAt(a) == '.' || employeeNumber.charAt(a) == '-'){ 
     works = false; 
    } 
} 
if(!works) { 
    System.out.println("\t Invalid Employee Number."); 
    System.out.println("\t Please run the program again."); 
    System.out.println("Thank you for using \"TEMPLE HUMAN RESOURCES\""); 
    System.exit(0); 
} 

條件-AND運算符被表示爲「& &」,並且條件設置爲true,只有當所有連接的表達導致爲true。

+0

它只適用於'。'是在開始。如果用戶輸入35.7會怎麼樣?這就是我現在想弄明白的。由於charAt(0)設置爲0,它只需要索引爲0的字符。 – user3558676 2014-10-07 23:24:46

+0

只需創建一個for循環遍歷每個字符,直到它到達字符串的末尾。每次迭代時,檢查字符是否與' - '或'。'相符。如果它們出現,設置爲false。 – apoorvk 2014-10-07 23:29:01

+0

給我幾分鐘,我會輸入代碼。 – apoorvk 2014-10-07 23:29:19

0

您的問題是您使用& &而不是||。

0

employeeNumber == '.' && employeeNumber == '-'將始終返回false,原因有兩個。

1)您需要使用.equals()代替==運算符,因爲==是在JVM中的對象的具體位置的運營商,如果被比較的對象將只返回true是完全相同的對象。 equals()僅用於變量的值。所以,employeeNumber == '.'總是假的,但employeeNumber.equals('.')可能是真的。

2)employeeNumber.equals('.') && employeeNumber.equals('-')仍然將永遠是假的,因爲你使用的是邏輯和操作員(& &)和String不能等於2倍的值一次。相反,您需要使用邏輯或運算符(||)。您的代碼應如下所示:

if (employeeNumber.equals('.') || employeeNumber.equals('-')) { 
    // Exit the program 
相關問題