import java.util.Scanner;
import javax.swing.JOptionPane;
public class RestaurantBill3
{
public static void main(String [] args)
{
//Constant
final double TAX_RATE = 0.0675;
final double TIP_PERCENT = 0.15;
//Variables
double cost;
double taxAmount = TAX_RATE * cost; //Tax amount
double totalWTax = taxAmount + cost; //Total with tax
double tipAmount = TIP_PERCENT * totalWTax; //Tip amount
double totalCost = taxAmount + tipAmount + totalWTax; //Total cost of meal
Scanner keyboard = new Scanner(System.in);
System.out.print("What is the cost of your meal? ");
cost = keyboard.nextDouble();
System.out.println("Your meal cost $" +cost);
System.out.println("Your Tax is $" + taxAmount);
System.out.println("Your Tip is $" + tipAmount);
System.out.println("The total cost of your meal is $" + totalCost);
System.exit(0); //End program
}
}
/* Я продолжаю получать ошибку, которая, по-видимому, не была инициализирована, но если она ждет ввода, как она должна это делать? */
Посмотрите, как вы объявляете переменную cost
. Вы объявляете переменную, но вы не присваиваете ей значение, поэтому оно не инициализируется. Я думаю, что есть большая концептуальная проблема. Посмотрите на свой код:
double cost; // this is uninitialized because it has not been assigned a value yet
double taxAmount = TAX_RATE * cost; //Tax amount
double totalWTax = taxAmount + cost; //Total with tax
double tipAmount = TIP_PERCENT * totalWTax; //Tip amount
double totalCost = taxAmount + tipAmount + totalWTax; //Total cost of meal
Здесь происходит то, что вы объявляете переменные и устанавливаете их значение как результат выражения - правую сторону знака равенства. В этом случае поток программы сверху вниз, и эти операторы выполняются последовательно. Когда taxAmount
и taxAmount
и ваши другие переменные, стоимость стоимости неизвестна. Это приводит к ошибке компилятора. Попробуйте переписывать код, как это, имея в виду, что cost
потребности быть присвоено значение, прежде чем использовать его.
public static void main(String [] args) {
//Constant
final double TAX_RATE = 0.0675;
final double TIP_PERCENT = 0.15;
//Variables
double cost, taxAmount; // rest of variables
Scanner keyboard = new Scanner(System.in);
System.out.print("What is the cost of your meal? ");
cost = keyboard.nextDouble();
System.out.println("Your meal cost $" +cost);
taxAmount = TAX_RATE * cost;
System.out.println("Your Tax is $" + taxAmount);
// rest of code
System.exit(0);
}
Вы имеете в виду стоимость cost
до ее инициализации здесь:
double taxAmount = TAX_RATE * cost;
double totalWTax = taxAmount + cost;
Переместите инициализацию этих переменных после инициализации cost
, поэтому cost
будет иметь значение, когда она ссылается.
cost
в расчетах, прежде чем присваивать ей какие-либо значения. Сначала присвойте ему значение.