簡體   English   中英

循環和顯示混亂

[英]Loop and display confusion

如果這看起來像一個簡單的問題我很抱歉,但我有一個問題,我正在努力解決,並沒有完全了解如何正確顯示結果。 所以基本上它要求接受一定距離的汽車的用戶輸入。 所以我使用掃描儀對象來獲取時間(以小時為單位)以及速度(mps)。 所以為了獲得距離,你只需將這兩個值相乘即可。 但我的問題在於顯示,我使用for循環顯示用戶每小時行進的距離(從1開始 - 直到達到用戶輸入的時間)for循環如下所示:

    // Calculate and display distance traveled
    distance = speed * time;
    System.out.println("Hour Distance Traveled");
    System.out.println("--------------------------");

    for (time =1; time <= distance/speed; time++)
    {
             System.out.println(time + "\t" + distance);
    }

所以我顯然堅持如何以遞增的形式顯示距離,比如時間顯示,我不知道如何去做,更重要的是如果for循環是在這種情況下使用的適當循環。 我不是要求為我完成問題,但我會感謝任何關於如何解決它或我做錯了什么的建議或解釋。

在循環的每次迭代中,您希望將時間(在當前迭代中)乘以速度,而不是使用最終計算的距離。

所以:

System.out.println("" + time + "\t" + ( time * speed ) );

應該適合你。

編輯一點點回答評論

您執行兩次相同的任務。 一旦計算結果,一個用於跟蹤。 您可以連接這兩個,這樣就可以顯示計算的進度。 當然,如果你不需要打印任何東西,你可以像你一樣執行乘法...

/* time and speed received from user. */
/* initialize distance */
distance = 0;
for (int i = 1; i <= time; i++)
{
    /* increment distance in each iteration */
    distance += speed;
    /* print as you progress */
    System.out.println(i + "\t" + distance);
}

我使用掃描儀對象來獲取時間(以小時為單位)以及速度(mps)。

好吧,如果我理解正確,這可能是你想要的:

for (time =1; time <= inputTime; time++)
    {
            distance = inputSpeed * time;
             System.out.println(time + "\t" + distance);
    }
for (time =1; time <= endTime; time++)
{
         distance = speed * time;
         System.out.println(time + "\t" + distance);
}

你只需要更新循環中的距離

你正在陷入混亂,因為你試圖在同一個代碼塊中為兩個不同的東西重復使用相同的變量“time”和“distance” - 既可以用於整個行程,也可以用於每個小時塊。 使用不同的變量名稱,它變得如此簡單。

所以,你讀了一段旅程的“時間”和“距離” - 這就是“tripHours”和“tripDistance”。

在你的循環中,你要計算小時數,所以你可能會有類似的東西:

int tripDistance = speed * tripHours;
for (int hour = 1; hour <= tripHours; hour++)
    int distance = hour * speed;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM