2013-03-05 76 views
-2

我正在嘗試編寫一個If或If-Else語句,用於在出現提示時未輸入整數值時保護程序。我不斷收到錯誤消息:'.class'的預期。If or If-Else Statement Error

System.out.println("Type the name of your destination: "); 
     destination = keyboard.nextLine(); 

     System.out.print(destination + " is how many miles away?"); 

     miles = keyboard.nextInt(); 

     if (miles != int); 
     { 
     System.out.println(miles + " is not valid. I will use 100 for the number of miles."); 
     } 
+0

什麼是錯誤信息? – 2013-03-05 03:27:22

+0

爲什麼不使用Integer.parseInt()?如果它不是一個有效的整數,則會拋出NumberFormatException。 – Dhinakar 2013-03-05 03:29:08

回答

2

int是一個關鍵字,不能參與條件表達式。

您的if語句後面還有一個僞造的分號,它充當受控語句,因此下面的塊是無條件的。

+2

然後向我解釋'miles!= int'是一個能夠正確編譯和執行的有效語句。 – 2013-03-05 03:27:49

+2

我不打算辯論我其實沒有說過的話。 – EJP 2013-03-05 03:29:43

+0

然後你的答案仍然不能解決問題。 – 2013-03-05 03:31:37

1

您得到的語法錯誤是因爲int是一個關鍵字。您不能將其用作標識符。

如果你想檢查是否Scannerint準備閱讀,在你的病情使用keyboard.hasNextInt()

int miles; 
while (!keyboard.hasNextInt()) {  
    System.out.println(keyboard.nextLine() + " is not valid. Please enter a different number."); 
} 
int miles = keyboard.nextInt(); 
2

這不能編譯:

if (miles != int); 

您比較的變量與int,這是一種類型。編譯器建議您添加.class,以便您可以獲取類對象,但它也不正確。

你想知道是否輸入一個整數值,但在這種情況下會發生什麼是nexInt()會拋出一個InputMismatchException。你應該做的是用hasNextInt()檢查用戶是否輸入一個整數。

0

你有一個;在if語句之後。

你也有它檢查用戶輸入到一個不是數字的int。可能想用一個數字來解決這個問題,並且它應該起作用......從我能記得的課程中。

0
if (miles != int); 

你不能測試一個數是否是一個像這樣的int。在這一行末尾還應該有一個分號(應該刪除)。但是,根本沒有理由擁有這條線。因爲你寫道:

miles = keyboard.nextInt(); 

英里必須是一個整數。否則Scanner會拋出異常。

0

我打算說說你需要做一個Java教程。你的代碼充滿了基本的錯誤。


(假設keyboardScanner實例...)

錯誤1 - 不能使用類型名稱或關鍵字(例如int)作爲值。

錯誤2 - 您只能使用==比較整數值(如miles的值)與其他數字。

錯誤3 - 您不應在if (condition)後面加分號。你寫的東西會編譯,但它實際上意味着「如果條件成立,那麼執行空的語句」。然後你用一個塊來跟着它......將無條件地執行

錯誤4 - 事實上,如果keyboard.nextInt()遇到一些不是有效整數的東西,它會拋出一個異常;例如InputMismatchException。如果你想打印出一條錯誤信息,你需要catch那個例外。

錯誤5 - 很顯然,你沒有檢查javadocnextInt()方法...


回顧一下......你在做這麼多錯誤,因爲你沒有做教程..或者你一直在跳過講座或其他事情。