好日子的傢伙,我是新來的。我正在爲我的前衛部隊做一個任務,所以請耐心等待。JAVA:if語句裏面的for循環和退出for循環
所以我要做的是寫一個代碼,可以輸入從1到120之間的整數的人的年齡。然後用戶必須計算平均年齡,並且應該以實數計算。但用戶必須輸入年齡值,直到用戶輸入0,即停止程序然後輸出平均值。如果用戶輸入的年齡無效,那麼程序應該繼續重新提示用戶,直到他們輸入有效年齡。
所以我盡了我的一份力。我創建了一個代碼,我想出了這一點:
public static void main(String[] args)
{
int ageValue = 0;
double getAge;
getAge = inputAge();
System.out.println("Average age is: " + getAge);
}
public static double inputAge()
{
int ageValue = 0;
double avgAge = 0;
Scanner sc = new Scanner(System.in);
for (int i = 1; i <= 120; i++)
{
System.out.println("Enter age");
ageValue += sc.nextInt();
avgAge = ageValue/(double) i;
if (ageValue == 0)
{
System.out.println("Average age is: " + avgAge);
System.exit(0);
}
while (ageValue < 0 || ageValue > 120)
{
System.out.println("Invalid input. Try again!");
ageValue = sc.nextInt();
}
}
return avgAge;
}
現在我放下我的代碼,我得到了我的平均公式莫名其妙地工作。現在,問題是,當我按0時,它不會提示「if」語句。但是,當第一個「輸入你的年齡」提示出現,我按0,「if」聲明工作。但是對於每次迭代,程序都不會讓我執行語句。
另一方面,我也在努力弄清楚如何在不使用break或System.exit()的情況下退出循環,因爲這會給我零標記。我想要的是當我按0時,它應該退出循環並輸出平均值,就像任務所說的那樣。
我不知道你們是否可以得到它..代碼是否正確?我在正確的軌道上嗎?我錯過了什麼?
乾杯
以及修復各種錯誤,這也是該部門只有一次。應該注意的是,如果用戶輸入nextInt無法解析的內容,這會引發異常。 – Rodney
哦,真的沒有意識到while while循環。謝謝,這解決了我的問題 – Seth