如何在Java中使用命令行的平均数字
这是一个学校作业。我真的很想了解我在做什么。我们被指示使用从命令行运行的Java编写程序。用户输入数字后,程序应该开始,发送欢迎消息,然后告诉用户他的数字的平均值是多少。如何在Java中使用命令行的平均数字
我相信这一点的目的是说明如何在程序中使用args
并帮助我们熟悉Java。
这是我目前的解释。我可以从命令行运行此命令,我知道如何添加欢迎消息......但是,我不明白代码的好处,以便能够在用户添加参数时添加平均数字的能力。
public class ArgumentExample {
public static void main(String[] args) {
if(args.length == 1 || args.length > 1){
System.out.println(args[0]);
}
if(args.length > 1) {
for(int i = 1; i < args.length; i++){
System.out.println(args[i]);
}
}
}
}
public class ArgumentExample {
public static void main(String[] args) {
int i = 0; // declare a counter here so you can use it in the catch
double tot = 0.0d; // declare the accumulator variable
try {
for (i = 0; i < args.length; i++) { // iterate over arguments...if only one is present returns just that one
tot += Double.parseDouble(args[i]); // sum
}
} catch (Exception ex) {
System.out.println("Argument " + i + " is not a number");// print which argument is not a number if any
}
System.out.println("Sum is: " + tot/(args.lenght == 0 ? 1 : args.lenght); // final print statement
}
}
现在,您只需打印输出到args
阵列中的参数。这不是一大步,从那里转化String
参数为数字(比如说,双打),加上那些运行总和的循环,在循环之后通过参数的数目除以:
double sum = 0;
if (args.length >= 1) {
for (int i = 0; i < args.length; i++) {
sum += Double.parseDouble(args[i]);
}
System.out.println("Average = " + sum/args.length);
}
翻一番基本类型double的包装类。它有方便的方法parseDouble
你可以通过String
,它会尝试将它转换为double
类型。我们应该使用双精度而不是整数,因为双精度的精度更高。如果你除5/2,你会得到2,而不是2.5,除非你确定5和2被视为双打。
请注意,这没有错误检查,因此如果任何参数不能解析为Double,则会抛出异常而失败。
你不考虑的第一个参数。 args指数是以0为基础的 – elbuild
啊,忘了改变起始指数。感谢那! –
args
是String
数组的参考,它包含启动时传递到程序中的所有参数。
数组使用0基础系统引用该位置的对象,因此args[0]
是传递给程序的第一个参数。
的for(int i = 1; i < args.length; i++)
环 正在经历的阵列,直到打印每个参数
学生往往把太多的东西,到主后到达终点(i = length - 1)
。
我建议你把真正的工作纳入明智的方法,你可能有一天使用和传递数据出来,像这样:
public class StatisticsUtils {
public double average(double [] values) {
double average = 0.0;
if ((values != null) && (values.length > 0)) {
for (double value : values) {
average += value;
}
average /= values.length;
}
return average;
}
}
为了让你必须建立数字的平均值它们的总和,然后除以参数的数量。例如
public class ArgumentExample
{
public static void main(String[] args) {
int sum = 0;
// step through all arguments
for(String arg : args)
{
try
{
// try to convert the argument to an integer
int number = Integer.parseInt(arg);
// sum it
sum += integer;
}
catch(NumberFormatException e)
{
// the currently processed argument couldn't be converted
// to a number
System.out.println(arg + " is not a number");
}
}
// average = sum/valuecount
double average = sum/args.length;
System.out.println("average = " + average);
}
Java的罐子ArgumentExample 1 2 3 4 5将导致进入3.希望帮助
您是否可以在0.0d后解释d也是如果有一个特定的原因使得变量总是......这是否代表您的头脑中有某些东西,或者它只是您使用的东西?我只是想试着把我的头围绕在整个事情上。万分感谢。 – wuno
“d”明确声明该常数为double。你也可以使用“f”作为浮点数。我声明了tot来存储如果在for循环中声明将被覆盖的累进总和。 – elbuild
grrrrrr你把数字加在一起......我整晚看着这个数字,然后意识到它只是添加它们......我简直不敢相信。对我的笑话耶...谢谢... – wuno