java - 语法错误,为什么我会得到它们?
问题描述
我正在为我的 Java 类做一个问题,该问题涉及获取一年的总降雨量、平均降雨量、最少降雨量和最多降雨量。我一生都无法弄清楚我做错了什么。我收到语法错误,我不太明白为什么。
import java.util.Scanner;
public class Rainfall {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
final int ttlMonth = 12; // for total months , which will always be 12//
double[] mRain = new double[ttlMonth]; //mRain for monthly rain//
int i = 0; //for use in the array//
double ttlRain; //total rain//
double avgRain; //average rain//
double maxRain; //most rain//
double minRain; //least rain//
System.out.println("Enter the monthly rain fall amount: ");
for(i = 0; i < ttlMonth; i++){
do{
System.out.print("Month " + (i+1) + ": ");
mRain[i] = scnr.nextDouble();
}
while(mRain[i] < 0);
}
//tTl for total//
ttlRain(double[] array) {
double tTl = 0;
for(i = 0; i < array.length; i++){
tTl += array[i];
}
ttlRain = tTl;
}
//aVg for average//
avgRain(double[] array) {
double aVg = 0;
aVg = ttlRain(array)/array.length;
}
//mAx for the most rainfall//
maxRain(double[] array) {
double mAx = 0;
for (i = 0; i < array.length; i++){
if(array[i] > mAx){
mAx = array[i];
}
}
}
//mIn for the least amount of rainfall//
minRain(double[] array) {
double mIn = array[0];
for(i = 0; i < array.length; i++){
if(array[i] < mIn){
mIn = array[i];
}
}
}
System.out.println("The yearly sum of rain: " + ttlRain);
System.out.println("The average ammount of rain: " + avgRain);
System.out.println("The most amount of rain fall: " + maxRain);
System.out.println("The least amount of rain fall: " + minRain);
}
}
解决方案
Java语言的多个问题:
- 因为您正在执行一个静态函数,所以内部调用的所有函数也需要是静态的
例如,给定:
static void a(){
b(); // does not compile
c(); // compiles
}
void b(){}
static void c(){}
所有函数都需要声明一个返回类型,如 void 或 double (在你的情况下)
所有返回值的函数都需要一个 return 关键字,并带有返回值。
您不能在另一个函数中创建命名函数,但可以创建匿名 lambda 函数
例如,给定:
double avgRain(double[] array) { // declares a double return type
return 9.0;
}
void print(double in) { // does not return anything. This is a voif function
System.out.println(in)
}
- 为了调用函数,您需要传递所有必需的参数
例子:
double sum(double a,double b){
return a+b;
}
sum(); // does not compile
sum(1.0,4.0); // compiles
将上述更改应用于您的代码后,它会编译并工作
public class Rainfall {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
final int ttlMonth = 12; // for total months , which will always be 12//
double[] mRain = new double[ttlMonth]; //mRain for monthly rain//
System.out.println("Enter the monthly rain fall amount: ");
for (int i = 0; i < ttlMonth; i++) {
do {
System.out.print("Month " + (i + 1) + ": ");
mRain[i] = scnr.nextDouble();
}
while (mRain[i] < 0);
}
System.out.println("The yearly sum of rain: " + ttlRain(mRain));//5
System.out.println("The average amount of rain: " + avgRain(mRain));//5
System.out.println("The most amount of rain fall: " + maxRain(mRain));//5
System.out.println("The least amount of rain fall: " + minRain(mRain));//5
}
//tTl for total//
private static double ttlRain(double[] array) { // 1,2,3
double tTl = 0;
for (int i = 0; i < array.length; i++) {
tTl += array[i];
}
return tTl;//4
}
//aVg for average//
private static double avgRain(double[] array) { // 1,2,3
return ttlRain(array) / array.length;
}
//mAx for the most rainfall//
private static double maxRain(double[] array) { // 1,2,3
double mAx = 0;
for (int i = 0; i < array.length; i++) {
if (array[i] > mAx) {
mAx = array[i];
}
}
return mAx;
}
//mIn for the least amount of rainfall//
private static double minRain(double[] array) { // 1,2,3
double mIn = array[0];
for (int i = 0; i < array.length; i++) {
if (array[i] < mIn) {
mIn = array[i];
}
}
return mIn;
}
}
推荐阅读
- javascript - How to return value from inner function to outer function
- java - How to change line space with a SpannableString?
- spring - Spring Boot How to load only specified @Repository components
- python - Python:协方差矩阵算法中缺少步骤
- sql-server - 如何确定别名临时表与持久表上的 SQL Server 依赖项之间的差异
- sql - How to run the subquery with the non equality clause on Spark?
- r - 如何将 netCDF 文件批量导入 R 并创建 RasterStack
- python - Add opposite number of values in each key of nested dictionary
- php - dns_get_mx, dns_get_record and checkdnsrr don't work with MX (work with A though)
- javascript - React jQuery(this) selector is not working