2016-01-31 89 views
1

我想詢問用戶是否要繼續輸入號碼添加到了總價值循環不承認一個不斷變化的變量

int total=0; 

    char letter='y'; 

    while (letter == 'y'); 
    { 
      Scanner userInput = new Scanner (System.in); 
      System.out.println("Input your number"); 
      int number = userInput.nextInt(); 

      total=number+total; 


      Scanner userInput1 = new Scanner (System.in); 
      System.out.println("Would you like to continue? Input y/n"); 
      char letter = userInput1.next().charAt(0); //**This is where there is an error** 

    }   
    System.out.println("The total of all the numbers inputted is "+total); 
    } 
} 

回答

2
  1. 你不應該有;第5行(while一行)。
  2. 在循環之外初始化Scanner只有一次性能更高性能。
  3. 在循環的最後一行,使用letter = ***而不是char letter = ***。您已經聲明變量letter
  4. 也許你應該處理nextInt行,以防用戶鍵入非數字。

可能的改進:

int total=0; 
char letter='y'; 
Scanner userInput = new Scanner(System.in); 
while(letter == 'y') 
{ 
    System.out.println("Input your number"); 
    int number = userInput.nextInt(); 
    total += number; 
    System.out.println("Woud you like to continue? Input y/n"); 
    letter = userInput.next().charAt(0); 
} 
+0

沒有解決我被卡住的問題,但擺脫了最後的錯誤標誌。謝謝 – Destroycontract

+0

你有什麼問題?我測試了我上面寫的代碼,當結果不是'y'時它會中斷。另外,編輯添加一個點。 – SOFe

+0

@Pemapmodder我upvoted 3你的不同答案upvote我太男人:P –

1

只需刪除char,因爲letter已經定義。取而代之的

char letter = userInput1.next().charAt(0); 

// char removed 
letter = userInput1.next().charAt(0); 

同時也可作爲Pemap表示刪除;while

後,基本上你的代碼應該是類似於以下

while (letter == 'y') { 
     Scanner userInput = new Scanner (System.in); 
     System.out.println("Input your number"); 
     int number = userInput.nextInt(); 

     total = number + total; 


     Scanner userInput1 = new Scanner(System.in); 
     System.out.println("Would you like to continue? Input y/n"); 
     letter = userInput1.next().charAt(0); 
}   
+0

非常感謝你:)只是在學校進入java。 – Destroycontract

+0

如果您發現答案正確並且有用,您可以將其答覆並將其作爲綠色標誌的接受答案簽名。謝謝 –

+0

@DavideLorenzoMARINO我投了贊成票,因爲它有一個很好的解釋。 –

1

2個問題。 1)你有一個;在一段時間聲明行中。第二)你已經聲明瞭字母變量。第二次詢問輸入後無需重新申報。希望能幫助到你。

int total=0; 
char letter='y'; 
while (letter == 'y') 
{ 
     Scanner userInput = new Scanner (System.in); 
     System.out.println("Input your number"); 
     int number = userInput.nextInt(); 

     total=number+total; 


     Scanner userInput1 = new Scanner (System.in); 
     System.out.println("Would you like to continue? Input y/n"); 
     letter = userInput1.next().charAt(0); //**This is where there is an error** 
}   
System.out.println("The total of all the numbers inputted is "+total); 
} 
} 
+0

感謝您的幫助 – Destroycontract