2013-04-10 41 views
-1

我需要知道爲什麼我在第18-21行發現這個錯誤。我感覺這可能是一個支架相關的問題,但我無法弄清楚。「非法表達開始」菜鳥錯誤?

import java.util.Scanner; 

public class Proj4_1 { 

public static void main(String [] args) { 
    Scanner reader = new Scanner(System.in); 

    int numb1 =; 
    int numb2 =; 
    int div =; 
    int remainder =; 

    System.out.println("Enter a number: "); 
    numb1 = reader.nextint(); 

    System.out.print(numb1); 

    System.out.println("Enter another number: "); 
    numb2 = reader.nextint(); 

    System.out.print(numb2); 

    if (numb1>numb2){ 
     div = numb1/numb2; 
     remainder = numb1 % numb2; 
    }else{ 
    if (numb2>numb1) 
     div = numb2/numb1; 
     remainder = numb2 % numb2; 
    } 

    System.out.println("The answer quotient is " +div+ "with a remainder of" +remainder); 

任何幫助或建議將不勝感激,謝謝提前

+0

編譯器錯誤不能同時出現運行時錯誤。 – 2013-04-10 19:54:56

+0

'int numb1 =;'對我來說看起來有點奇怪,我認爲它可能是你的問題的地方 – 2013-04-10 19:55:23

+0

@LuiggiMendoza如果編譯器本身崩潰怎麼辦? – 2013-04-10 19:55:45

回答

6

好吧,看看這個:

int numb1 =; 

什麼是你期待的初始值是?

你可以聲明一個變量不分配一個值,就像這樣:

int numb1; 

...但你不能離開=有沒有提供一個值。

不過,我會親自等待聲明變量,直到你準備給它一個值:

public static void main(String [] args) { 
    Scanner reader = new Scanner(System.in); 

    System.out.println("Enter a number: "); 
    // Fixed case of nextInt as well... 
    int numb1 = reader.nextInt(); 

    System.out.print(numb1); 

    System.out.println("Enter another number: "); 
    int numb2 = reader.nextInt(); 

    System.out.print(numb2); 

    // etc 
} 

您不必在方法的頂部宣佈所有的變量,並且如果您只在首次需要它們的地方聲明它們,則代碼通常會更清晰。

編輯:還有這個if塊這是不正確的:

if (numb2>numb1) 
    div = numb2/numb1; 
    remainder = numb2 % numb2; 
} 

你已經錯過了左括號,這意味着你已經有效得到這個:

if (numb2>numb1) { 
    div = numb2/numb1; 
} 
remainder = numb2 % numb2; 
// This closing brace is now dangling! 
} 

你真的意思是這樣的:

if (numb2 > numb1) { 
    div = numb2/numb1; 
    remainder = numb2 % numb2; 
} 

請注意,如果您經常編譯代碼,您將不會得到如此多的不同的錯誤。只要你得到一個編譯時錯誤,你應該停下來,確保你理解它並修復它。這樣,你永遠不會面臨絕大多數的問題來嘗試去理解。另外,你不需要擔心多個錯誤互相影響,這會讓生活變得更加困難。

+0

我正在提示輸入第二十三行第二十二行 – user2267726 2013-04-10 19:55:08

+0

@ user2267726:是的,但你期望用'='做什麼聲明呢? – 2013-04-10 19:55:26

+0

還有'if(numb2> numb1)sentence1; SENTENCE2; }(沒有開頭的括號)。 – 2013-04-10 19:56:07