我在第18行收到此错误。我不知道为什么编译器要求我在数组等级和变量gradeNum都是double类型时将变量gradeNum强制转换为int类型。免责声明:此代码远未完成。我唯一的问题是这个错误与数组等级和变量gradeNum有关。
import java.util.*;
public class Lab10{
static Scanner console = new Scanner(System.in);
static String temp = "";
static double gradeNum = 0.0;
static String temp2 = "";
public static void main(String [] args) {
System.out.println("Please enter how many grades you would like to input: ");
temp = console.nextLine();
gradeNum = Double.parseDouble(temp);
double [] grade = new double [gradeNum];
System.out.println("Okay now please enter each individual grade: ");
temp2 = console.nextLine();
} // end of main
} // end of class Lab10
答案 0 :(得分:2)
[]
new double[size]
内的内容是双数组的大小。不是数组的内容。
double [] grade = new double[1];
grade[1] = gradeNum;
答案 1 :(得分:1)
初始化数组并且必须提供不能仅为double的整数的大小。你不能创建只包含3或4个3.6元素的数组。
答案 2 :(得分:0)
你不能使用double
来指定数组大小,根据JLS Chapter 10,只允许非负整数值,这就是编译器要你强制转换的原因将gradeNum
加倍到int。
数组中包含的变量没有名称;相反,它们由使用非负整数索引值的数组访问表达式引用。这些变量称为数组的组件。如果一个数组有n个组件,我们说n是数组的长度;使用0到n - 1之间的整数索引来引用数组的组件。
因此您需要将代码更改为:
static int gradeNum = 0;
....
gradeNum = Integer.parseInt(temp);