java为什么我的程序打印“null”而不是字符串?
我正在尝试创建一个程序来打印一周中每天的温度。我不知道为什么我的代码打印“null”而不是一周中的每一天。我以前从未见过这个错误(我正在学习编程课程),在教科书中找不到任何信息。这是我到目前为止的代码
import java.util.Scanner;
public class TempsInOneWeek {
public static void main(String[] args) {
Scanner scnr = new Scanner (System.in);
final int NUMBER_OF_DAYS = 7;
String[] dayOfWeek = new String[NUMBER_OF_DAYS];
int[] temp = new int [7]; //array of 7 temperatures for 7 days of the week
int tempForDay = 0;
int i = 0; //loop variable
System.out.println("Enter the temperature for each day, beginning with Sunday.");
for (i = 0; i <= temp.length; ++i) {
temp[i] = scnr.nextInt();
System.out.println(dayOfWeek[i] + "/'s temperature was: " + temp[i] + " degrees.");
}
dayOfWeek[i] = "Sunday";
dayOfWeek[i] = "Monday";
dayOfWeek[i] = "Tuesday";
dayOfWeek[i] = "Wednesday";
dayOfWeek[i] = "Thursday";
dayOfWeek[i] = "Friday";
dayOfWeek[i] = "Saturday";
temp[i] = scnr.nextInt();
temp[i] = scnr.nextInt();
temp[i] = scnr.nextInt();
temp[i] = scnr.nextInt();
temp[i] = scnr.nextInt();
temp[i] = scnr.nextInt();
temp[i] = scnr.nextInt();
}
很明显,数组放错了位置,但它现在不会影响输出,所以我想表明我至少在这里尝试过。实际上,我唯一的问题是如何打印一周中的哪一天。也许还有一点关于如何处理上面的两个阵列的指导
# 1 楼答案
当您尝试从数组中检索数据时
。。。此时您实际上还没有向数组中放入任何内容
创建阵列时
这将创建数组并使用null填充每个索引
请记住,在声明和初始化数组时,除非显式填充数组,否则数组将填充数组类型的默认值(在您的示例中为字符串,字符串的默认值为null)
因此,您需要将实际填充数组的代码行移动到之前尝试检索数据的点
# 2 楼答案
只需在for循环之前移动以下分配