回答问题:谢谢大家的帮助!
我在完成代码时遇到了一些麻烦,主要是因为我对编码很新,但是我还在努力。非常感谢任何帮助!
我有3个问题:
提前感谢您,我真的很感激任何帮助
import java.util.Scanner;
public class takeOrders {//Find totals and average price
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int euro; // what country the candy canes are from
int us;// what country the candy canes are from
int holder; //place holder for user input of location
int v110 = 0; //110v
int v240 = 0; //240v
int sum = 0, i = 1;
double total = 0;
double discount = 0;
do {
//Prompt what country the order is for
System.out.println("What country is the order for? (press '0' to see the Net Total of order) ");
System.out.println("1: Europe\n2: U.S.");
holder = input.nextInt();
// 110 or 240 voltage
if (holder == 1) {
//How many boxes are ordered EUROPE
System.out.println("Input number of 240v boxes needed");
v240 = input.nextInt();
total = 2.40 * v240;
System.out.println("Order total: $" + total);
} else if (holder == 2) {
// How many boxes are ordered US
System.out.println("Input number of 110v boxes needed");
v110 = input.nextInt();
total = 2.40 * v110;
}
// Discount for U.S.
if (holder == 2) {
if (v110 >= 3)
discount = total * .05;
} else if (v110 >= 10) {
discount = total * .10;
}
if (discount > 0) {
System.out.println("Order total: $" + total);
System.out.println("Total with Discount: $" + (total - discount));
}
} while ((v240 != 0) || (v110 != 0));
}
}
答案 0 :(得分:0)
捕获输入后,您的while条件永远不会成立,因此无限循环。而不是
while ((v240 != 0) || (v110 != 0));
尝试
while (holder != 0);
要么是这样,要么每次重复循环时都需要将v240和v110重置为零。
答案 1 :(得分:0)
使用printf是最简单的方法。
System.out.printf("%.2f", total);
所以对你的情况来说:
System.out.printf("Order total: %.2f", total);
您还可以使用DecimalFormat显示您要打印的数字。
import java.text.DecimalFormat;
DecimalFormat df = new DecimalFormat("#.##");
System.out.println("Order total: $" + df.format(total));
答案 2 :(得分:0)
为了完成循环,我会使用holder而不是v110和v240这样你不需要输入一个国家然后输入订单金额。 问题可能是由于如果您首先选择美国并输入一个值,则此值将保留,直到您再次输入美国另一个金额,因此您的循环将结束,除非您选择所有相同的国家/地区,然后选择0作为金额
要累积总数,你应该做
total += 2.40*v240;
或
total=total+(2.40*v240);
这样每个循环的总量就会增加
为了格式化输出,您可以使用此代码片段:
DecimalFormat df = new DecimalFormat("#.##");
System.out.print(df.format(total));
我希望这可以帮助您熟悉编程和Java。