Как мне конвертировать мои пока l oop в a для l oop? - PullRequest
0 голосов
/ 26 февраля 2020

Я начинающий программист, использующий Netbeans Java. Я создал код, который первоначально спрашивает, сколько галлонов в вашем бензобаке. Затем он будет некоторое время спрашивать, сколько миль вы будете проезжать за этот первый пробег и как быстро вы путешествуете. Это будет повторяться некоторое время l oop, пока вы не введете «0», чтобы прекратить добавлять поездки. Я нахожусь в тупике о том, как преобразовать это, в то время как l oop в использование только циклов For Я был бы очень признателен за помощь. Вот мой код с циклами while.

public static void main(String[] args) 
{
    Scanner input = new Scanner(System.in);
            int tank;
            double miles;
            double speed;
            double totalMiles = 0.0;
            int choice;
            double time;
            double totalTime = 0.0;
            double fuelConsumption;

            System.out.print("How many gallons of gas is in your tank (Integer 1-15)? ");
            tank = input.nextInt();
            System.out.printf("%s%d%s\n\n" , "You have ", tank , " gallons of gas in your tank.");

            System.out.print("Are you going on a trip (1 = Yes or 0 = No)? ");
            choice = input.nextInt();

            while (choice == 1)
            {
                System.out.print("How many miles are you traveling? ");     // miles 
                miles = input.nextFloat();

                System.out.print("What is your speed for this run (MPH)? ");      // speed
                speed = input.nextInt();
                System.out.print("\n");


                totalMiles = totalMiles + miles;
                time = (miles/speed);
                totalTime += (time*60);
                fuelConsumption = (20*(tank/totalMiles));

                System.out.print("Is there another leg in your trip (1 = Yes or 0 = No)? ");    // asking another leg
                choice = input.nextInt();

                if (choice == 0)
                {
                    System.out.printf("%s%5.2f%s\n","Your data for this trip is: \n"
                            + "You traveled a total of about ", totalMiles , " miles.");
                    System.out.printf("%s%.2f%s\n" , "You traveled about " , totalTime , " minutes.");

                    if (fuelConsumption >= 2)
                    {
                        System.out.println("Your car has enough gas to return.");
                        break;

                    }
                    else
                    {
                        System.out.println("Your car will need more gas to return.");
                        break;
                    }


                }
            }

}

}

Ответы [ 2 ]

1 голос
/ 26 февраля 2020

Это не вариант использования для l oop, где мы выполняем итерации по известному количеству элементов для выполнения известного числа итераций. Мол, повторить 10 раз или около того.

Технически это может быть решено с помощью для l oop, но это немного злоупотребляет концепцией. В то время как l oop идеально подходит для этой задачи.

0 голосов
/ 26 февраля 2020

Это не место для использования for-l oop, вы используете a для l oop для чего-то вроде этого:


printAmount = 10;

for (int i = 0; i < printAmount; i++) {

   System.out.println("Hello World"); 

}

Здесь вы используете для l oop напечатать «Привет» для суммы в printAmount.

Ваш случай отличается: Вы хотите, чтобы while-l oop повторялось, пока ввод равен «1», поэтому вы используете WHILE-l oop .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...