1

これが簡単な質問のように思える場合は申し訳ありませんが、解決しようとしている問題があり、結果を適切に表示する方法がよくわかりません。したがって、基本的には、特定の距離を移動する車のユーザー入力を受け入れるように求めています。そこで、スキャナー オブジェクトを使用して、時間 (時間単位) と速度 (mps) を取得しました。したがって、距離を取得するには、これら 2 つの値を掛けるだけです。しかし、私の問題は表示にあります。forループを使用して、ユーザーが1時間ごとに移動した距離を表示しました(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 ループを使用するのが適切なループであるかどうかです。私は私のために問題を解決するように求めているわけではありませんが、それを解決する方法や私が間違っていることについてアドバイスや説明をいただければ幸いです.

4

4 に答える 4

2

ループの各反復で、最終的に計算された距離を使用するのではなく、時間 (現在の反復) に速度を掛けます。

そう:

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

あなたのために働くはずです。

編集コメントに答えるために少し詳しく説明します

同じタスクを 2 回実行します。1 回は結果を計算するとき、もう 1 回はトレース用です。この 2 つを接続すると、計算の進行状況が表示されます。もちろん、何も印刷する必要がない場合は、乗算を実行するだけで済みます...

/* 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);
}
于 2013-10-20T02:28:56.543 に答える
1

スキャナー オブジェクトを使用して、時間 (時間単位) と速度 (mps) を取得しました。

さて、私があなたを正しく理解していれば、これはおそらくあなたが望むものです:

for (time =1; time <= inputTime; time++)
    {
            distance = inputSpeed * time;
             System.out.println(time + "\t" + distance);
    }
于 2013-10-20T02:28:20.600 に答える
1
for (time =1; time <= endTime; time++)
{
         distance = speed * time;
         System.out.println(time + "\t" + distance);
}

ループ内の距離を更新するだけです

于 2013-10-20T02:28:58.463 に答える