获得用户输入价格中的最高价值?

时间:2015-04-28 12:20:13

标签: java

我正在尝试编写一个程序:

允许输入产品价格及其金额。 它必须显示产品的总价格。我在想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);

2 个答案:

答案 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循环中。