2014-09-15 8 views
-1

Итак, я работаю над назначением для своего класса программирования Java. Назначение выглядит следующим образом (и код будет в конце): Предположим, что плата за обучение в университете составляет 10 000 долларов США в этом году и увеличивается на 5% в год. Напишите программу, которая вычисляет стоимость обучения за десять лет и общую стоимость обучения на четыре года за десять лет. Суммы должны быть до двух знаков после запятой. Я не могу понять, где я ошибся и как это исправить. Когда я пытаюсь запустить его, ничего не происходит, ничто не отображает ВСЕ! :(Вот мой код:.Начало программирования Java

public class FutureTuitionPrice { 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     double tuition = 10000; 
     double count = 0; 
     double increase = 1.05; 
     double increasedTuition = 0; 

     do { 
      increasedTuition = tuition * increase; 

     } while(count <=10); 
     count++; 

     if (count ==10); 
     System.out.print("Tuition in ten years is $ \n" + increasedTuition);   
     do { 
      increasedTuition = tuition * increase; 
     }while (count==10 && count < 14); 
     count ++; 
     if (count ==14); 
     System.out.print("The four-year tuitiuon in ten years is $ " + increasedTuition); 
     } 

    } 
+7

Выполните цикл do/while на бумаге и обратите внимание на значение переменной count на каждой итерации. –

+0

Ваш в бесконечном цикле. – brso05

+4

Отладить код. Должен помочь и в будущем. –

ответ

5
double count = 0; 
do { 
    increasedTuition = tuition * increase; 
} while(count <=10); 

Там нет ничего в этом сегменте кода, который выполняется увеличение счетчика Он будет продолжать петли вечно

Перемещайте счет ++ внутри фигурных скобок, чтобы сделать. Граф в конце концов достигнет 10.

+0

Спасибо! Я пойду попробовать это сейчас! Итак, правильно ли я поступал до следующего цикла (начиная со счета 10 до 14, чтобы выяснить стоимость 4 лет обучения?) – Tammy

+0

Так почему бы вам не написать это правильно, а не предлагать? – nbro

+0

@cell, вероятно, потому, что это домашнее задание – MikeTheLiar

-2

Ваша программа находится в бесконечном цикле

 do { 

      increasedTuition = tuition * increase; 
      ++count;//incrementing count each cycle 

    } while(count <=10); 
+0

Это даже не правильный синтаксис. –

+1

Вы должны проверить синтаксис. Не смешивайте циклы 'do while' с' while'. – Advicer

+0

Да, спасибо, я не знаю, где мой разум, исправил фрагмент кода, проблема в том, что он никогда не увеличивал свой счет. –

0

Try т его выход ...

double tuition = 10000; 
    double count = 1; 
    double percentageIncrease = 1.05; 
    double increasedTuition; 
    double sumOfTuitionAfterFourYears = 0; 
    double increasedTuitionTwo; 

    do { 
     //This is the correct incremental formular 
     tuition = tuition * percentageIncrease; 
     //increasedTuition = increasedTuition * percentageIncrease; 
     count++; 

     //Formatting the number of digits after the decimal point 
     increasedTuition = (int)(tuition * 100)/100.0; 

     //This if statement must be inside the loop body 
     if (count > 10) //Note, do not put a semi-colon here 
     System.out.println("Tuition in ten years is " + increasedTuition); 

    } while (count <= 10); //End of first loop 

    do { 
     increasedTuition = increasedTuition * percentageIncrease; 

      //Formatting the number of digits after the decimal point 
      increasedTuitionTwo = (int)(increasedTuition * 100)/100.0; 

      //Adding the result above on each iteration pass 
      sumOfTuitionAfterFourYears += increasedTuitionTwo; 

      if (count == 14) 
      System.out.println("The sum of four years tuition starting from 10 years is " + sumOfTuitionAfterFourYears); 

     //Increments the count from 10 since our base tuition is the last tuition in the last loop 
     //You can also write your continuation-condition like this: (count >= 10 && count <= 14). 
     //You will get the same result without changing the base tuition 
     count++; 

    } while (count <= 14); //End of second loop 
Смежные вопросы