我正在尝试编写一个程序:
允许输入产品价格及其金额。
它必须显示产品的总价格。我在想price * quantity
。
该过程必须重复用户想要的次数。
当工艺完成后,必须打印更昂贵的产品价值,销售的产品总数以及所有产品的总价值。
到目前为止,这是我的代码:
int value;
int quantity;
int total = 0;
int total_sold = 0;
int total_cashier = 0;
float expensier = Float.MAX_VALUE;
int again = 1;
Scanner input = new Scanner(System. in );
System.out.println("Ingrese valor del producto: ");
value = input.nextInt();
Scanner input2 = new Scanner(System. in );
System.out.println("Ingrese cantidad: ");
quantity = input2.nextInt();
for (int i = 0; i < quantity; i++) {
total += value * quantity;
total_cashier += total;
if (value > expensier) {
expensier = value;
}
}
total_sold = quantity;
System.out.println("Total to pay :" + total);
System.out.println("Value of the expensiest product: " + expensier);
System.out.println("Amount of products sold: " + total_sold);
System.out.println("Amount of cash in cashier: " + total_cashier);
答案 0 :(得分:1)
您正在将费用初始化为java所知的最大值。
这意味着条件
if (value > expensier) {
永远不会发生,因为价值永远不会超过MAX_VALUE。
改为将其更改为MIN_VALUE
。
然而,还有其他一些问题,你是混合类型(浮点数和整数),但是否则会让你再次出现。
答案 1 :(得分:0)
对于最高值,除了正在初始化变量
之外,您基本上做了正确的事情float expensier = Float.MAX_VALUE;
不是你想要的。你不想要一个浮点数(因为所有值都是整数)并且你想将它初始化为零,因为Float.MAX_VALUE已经是最大的值,所以你永远不会找到更大的值。
试
int expensier = 0;
要输入多个值,请将整个事物从第一个println包装到while循环中。