簡體   English   中英

距離旅行循環幫助Java

[英]Distance Traveled loop help Java

我一直在絞盡腦汁想弄清楚為什么我的程序循環不正確。 而不是獲得每個小時的增量,而是獲得最終的小時/速度。 因此,如果我以40英里/小時的速度行駛3個小時,我只會得到120英里/小時。

這是問題所在:

可以計算出車輛行駛的距離:距離=速度*時間例如,如果火車以每小時40英里的速度行駛3個小時,則行駛的距離為120英里。 編寫一個程序,詢問車輛的速度(以英里/小時為單位)以及行駛的小時數。 它應該使用一個循環來顯示用戶指定時間段內每小時行駛的車輛的距離。 例如,如果車輛以40 mph的速度行駛了三個小時,則它應顯示類似於以下的報告:行駛時數

1 40

2 80

3 120

import java.util.Scanner;

public class Distance{
  public static void main(String [] args){
  Scanner keyboard = new Scanner(System.in);

  int time , speed ,  hour;
  double  distance;

  System.out.println("How fast were you going ?");
  speed = keyboard.nextInt();

  while(speed<=0)
  {
     System.out.println("Please enter a valid speed ");
     speed = keyboard.nextInt();
  }

  System.out.println(" How long did you ride / drive ?");
  time = keyboard.nextInt();

  while(time<=0)
  {
     System.out.println("Please enter a valid time ");
     time = keyboard.nextInt();
  }

  System.out.println(" Hour                         Distance");
  System.out.println("---------------------------------");
  hour = 0;


  for( int x = 1; x<=time; x++)
  {
     hour++;
     if(hour>1)
     {
        distance = time * speed;
        System.out.println(time+ "                " +distance);
     }
    }
   }
  }

在循環中使用小時代替時間,

 for( int x = 1; x<=time; x++) {
     hour++;
     if(hour>1) {
         distance = hour * speed;
         System.out.println(hour+ "                " +distance);
     }
 }

或只使用x

刪除hourdistance變量。

將循環變量的名稱從x更改為hour

只需循環即可:

for( int hour = 1; hour <= time; hour++)
    System.out.println(hour+ " " + (hour * speed));

請注意,如果您確實使用過distance變量,則它是一個double精度類型錯誤的double精度型,因為:

  • 速度和時間都是int ,所以距離必須是int
  • double精度輸出的結果帶有小數點,但您的要求未顯示

暫無
暫無

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

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