Java 求数字的平均值
我要计算三个双倍数的和,得到它的平均值。 我被要求使用以下两种方法,不得更改:Java 求数字的平均值,java,Java,我要计算三个双倍数的和,得到它的平均值。 我被要求使用以下两种方法,不得更改: getNumbers()它只获取用户输入,没有参数,没有返回getAverage()它计算三个双精度数字的平均值,返回平均值,并且没有参数 我的问题是,每次我在CMD上运行它时,它都会显示该方法不起作用,并且不会打印输出。让我输入三个数字,并在最后得到其平均值 如果有人能就我做错了什么给出建议,我将不胜感激 import java.util.Scanner; public class ComputeAverage{
getNumbers()
它只获取用户输入,没有参数,没有返回getAverage()
它计算三个双精度数字的平均值,返回平均值,并且没有参数
我的问题是,每次我在CMD上运行它时,它都会显示该方法不起作用,并且不会打印输出。让我输入三个数字,并在最后得到其平均值
如果有人能就我做错了什么给出建议,我将不胜感激
import java.util.Scanner;
public class ComputeAverage{
double firstNum;
double secondNum;
double thirdNum;
double sum;
double average;
public void getNumbers(){
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter your first number: ");
double firstNum = keyboard.nextDouble();
System.out.println("Enter your second number: ");
double secondNum = keyboard.nextDouble();
System.out.println("Enter your third number: ");
double thirdNum = keyboard.nextDouble();
Test.println("The average is: " + average);
}
public double getAverage(double firstNum, double secondNum, double thirdNum){
double average = firstNum + secondNum + thirdNum / 3;
return average;
}
}
虽然您应该学习,但这是适用于的
/
运算符的优先级高于+
,这意味着您拥有的是
double average = firstNum + secondNum + (thirdNum / 3);
很可能你的意图是
double average = (firstNum + secondNum + thirdNum) / 3;
我还怀疑您也想调用这个方法
Test.println("The average is: " + getAverage(firstNum, secondNum, thirdNum);
我还会将所有字段都转换为局部变量,以避免混淆。注意:IDE应该提示您这样做,并给您一个自动修复。在这里,您没有作为程序入口点的main方法。在getNumber()中初始化了3个局部变量,这对getAverage()是不可见的
3个你需要考虑的事情,以便使这个代码工作
System.out.println
,或者在类测试中定义一个静态方法println(您没有发布它,所以我想您没有)getAverage
总而言之,您需要: 替换此项:
Test.println("The average is: " + average);
与
由于运算符的优先级,请执行以下操作:
public double getAverage(double firstNum, double secondNum, double thirdNum){
double average = (firstNum + secondNum + thirdNum) / 3;
return average;
}
代码中有几个问题。首先,它不会编译,因为
Test
是未知的。您还将firstNum
、secondNum
和thirdNum
声明为成员变量,但它们也在getNumbers()
中声明为局部变量。您必须决定使用成员变量,或者将值作为参数传递给getAverage()
接下来是/
优先于+
,因此将首先计算thirdNum/3
没有必要,但我认为最好键入/3.0
,因为3
无论如何都会转换为double,只是为了尽可能清楚
例如,它可以如下所示:
import java.util.Scanner;
public class ComputeAverage{
double firstNum;
double secondNum;
double thirdNum;
public void getNumbers(){
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter your first number: ");
firstNum = keyboard.nextDouble();
System.out.println("Enter your second number: ");
secondNum = keyboard.nextDouble();
System.out.println("Enter your third number: ");
thirdNum = keyboard.nextDouble();
}
public double getAverage(){
return (firstNum + secondNum + thirdNum) / 3.0;
}
public static void main(String[] args) {
ComputeAverage ca = new ComputeAverage();
ca.getNumbers();
System.out.println("The average is: " + ca.getAverage());
}
}
你应该学习运算符优先级我认为你需要学习运算符优先级和变量范围。或者从数学中学习BOMDAS。;)@彼得拉维,是的:-)
public double getAverage(double firstNum, double secondNum, double thirdNum){
double average = (firstNum + secondNum + thirdNum) / 3;
return average;
}
import java.util.Scanner;
public class ComputeAverage{
double firstNum;
double secondNum;
double thirdNum;
public void getNumbers(){
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter your first number: ");
firstNum = keyboard.nextDouble();
System.out.println("Enter your second number: ");
secondNum = keyboard.nextDouble();
System.out.println("Enter your third number: ");
thirdNum = keyboard.nextDouble();
}
public double getAverage(){
return (firstNum + secondNum + thirdNum) / 3.0;
}
public static void main(String[] args) {
ComputeAverage ca = new ComputeAverage();
ca.getNumbers();
System.out.println("The average is: " + ca.getAverage());
}
}