2013-03-02 65 views
1

因此,在我的程序的這一部分,我試圖讓程序重新詢問用戶的輸入。使while循環重新詢問用戶的輸入

問題是說int已經被聲明瞭。但是,我如何再次獲得有關問題的輸入?

Scanner keyboard = new Scanner(System.in); 

System.out.println("Please enter possible and actual points for participation: "); 
int pparticipation = keyboard.nextInt(); 
int aparticipation = keyboard.nextInt(); 

while (aparticipation > pparticipation || pparticipation < 0){ 
    System.out.println("Please enter possible and actual points for participation: "); 
    int pparticipation = keyboard.nextInt(); 
    int aparticipation = keyboard.nextInt(); 
} 

回答

2

您聲明瞭兩次變量。從循環中的變量中刪除「int」應該使其工作。

int aparticipation; 即聲明變量。爲此後的變量賦值,你只需要做 aparticipation = keyboard.nextInt();

你已經聲明瞭,所以你不必告訴編譯器它再次是一個int。

+0

哇愚蠢的錯誤。感謝您指出它,這就是訣竅! – 2013-03-02 02:15:59

1

錯誤發生的原因是您正嘗試在循環內再次聲明pparticipation和aparticipation。從這兩個變量前刪除類型(int)。

0

所有你需要做的是改變如下: -

while (aparticipation > pparticipation || pparticipation < 0){ 
    System.out.println("Please enter possible and actual points for participation: "); 
    int pparticipation = keyboard.nextInt(); 
    int aparticipation = keyboard.nextInt(); 
} 

while (aparticipation > pparticipation || pparticipation < 0){ 
    System.out.println("Please enter possible and actual points for participation: "); 
    pparticipation = keyboard.nextInt(); 
    aparticipation = keyboard.nextInt(); 
} 

的變量已經聲明,所以不要再這樣做。