关于存储总数和求平均值的初学者 Java 问题

Posted

技术标签:

【中文标题】关于存储总数和求平均值的初学者 Java 问题【英文标题】:Beginner Java problem regarding storing totals and finding the average 【发布时间】:2020-07-06 04:17:25 【问题描述】:

我正在学习我的第一个编码课程,但我的循环遇到了问题。我应该编写一个程序,将用户输入的特定数量和特定价格相乘,然后找到我购买的平均值。我遇到的问题是你不能拥有超过 10 件物品的数量,我不知道如何确保数量不会超过 10 在我乘以平均时我已经尝试过当被问及是否要购买其他任何东西时,最终会跳到下一行或删除初始值的循环我将在下面发布我的代码以及我们应该最终得到的示例输出,感谢任何对初学者的帮助或建议!

import java.util.Scanner;

public class Main 

  public static void main(String[] args) 
Scanner cs=new Scanner(System.in);

System.out.println("What is the quantity of your purchase?");

double a = cs.nextDouble();


  


System.out.println("How much does your purchase cost?");




double b = cs.nextDouble();

  System.out.println("Would you like to purchase anything else? Please type yes or no.");


double total = a*b;

avg = (Float) ((a+b/2);

System.out.println("Your total is: "+total"\nThe average of your purchase is: " + avg);

  

样本输出:

输入数量:3 输入价格:8.50 这将花费 25.50 美元

输入数量:12 输入错误!您一次最多只能购买 10 件商品!

输入数量:2 输入价格:5.50 这将花费 11.00 美元

输入数量:4 输入价格:3.00 这将花费 12.00 美元

您订购了 9 件商品,价格为 48.50 美元,平均每件 5.39 美元

它不一定要看起来完全像这样,但总体思路是订购各种未描述的产品,这些产品的数量和价格总计,并最终被平均。唯一的规则是数量必须保持在 10 或以下,并且我使用的是浮动变量或双精度数。再次感谢!

【问题讨论】:

你的循环在哪里,放置准确的代码并写下关于问题的清晰信息 一些代码格式可以很好地回答这个问题。 【参考方案1】:

您可以将 typecast 的 double 值转换为 int,然后在某些 if 语句中使用它来查看该值是否为 < 10,具体取决于进一步操作。

示例代码

 double total = 0.0;
 double avg = 0.0;
 double b = 0.0;
 Scanner cs = new Scanner(System.in);

 System.out.println("What is the quantity of your purchase?");

 double a = cs.nextDouble();
 int value = (int) a;
 int i = 0;
 if (value < 10) 
  //loop through items
  for (i = 0; i < value; i++) 

   System.out.println("How much does your purchase cost?" + i);

   b = cs.nextDouble();
   //add to total
   total += b;

  
  //get avg with total no and total quantity
  avg = (double)((total / value));
  System.out.println("Your total is: " + total + "\nThe average of your purchase is: " + avg);
  else 

  System.out.println("Incorrect Entry! You can only buy up to 10 items at once!");


 

输出

What is the quantity of your purchase?                                                                                        
13                                                                                                                            
Incorrect Entry! You can only buy up to 10 items at once!

【讨论】:

这就是我所缺少的,每次我获得一个成功的循环,我都会失去我的价值。谢谢!现在我只需要弄清楚如何将整个事情循环四次并将所有四个加在一起。 只需在 if 语句中添加一个循环,即:for(i=0;i&lt;value;i++) //your calculation 应该可以工作。而且您只需要 4 个项目的值? 您可以将此答案设置为accepted.. 如果这样可以解决您的问题【参考方案2】:

您可以将数量变量设为整数,因为数量始终是十进制数并插入 if 语句

import java.util.Scanner;

public class Main 
    public static void main(String[] args) 
    Scanner cs=new Scanner(System.in);
    System.out.println("What is the quantity of your purchase?");
    int qunatity = cs.nextInt();
    if(a > 10) 
        System.out.println("Incorrect Entry! You can only buy up to 10 items at once!");
    
    System.out.println("How much does your purchase cost?");
    double cost = cs.nextDouble();
    // System.out.println("Would you like to purchase anything else? Please type yes or no.");
    double total = a*b;
    avg = total / quantity;
    System.out.println("Your total is: "+total"\nThe average of your purchase is: " + avg);

  

【讨论】:

以上是关于关于存储总数和求平均值的初学者 Java 问题的主要内容,如果未能解决你的问题,请参考以下文章

关于并发和吞吐量

java中的取整(/)和求余(%)

二叉树的一些基本概念和求节点问题

如何使用sql函数平均值总数最小值最大值

JAVA集合06_流式编程GroupBy和求最值示例

Java 数组遍历和求最值的方法图解