Java 为什么我的for循环没有退出?

Java 为什么我的for循环没有退出?,java,Java,第一次使用数组。我想我已经找到了建立阵列的开始,但是我有一个问题,我的一个循环没有启动,我不知道为什么。我的“天”循环在达到10天后继续重新开始。任何帮助都将不胜感激。谢谢 public class TempArray { public static void main(String[] args) { Scanner keyboard = new Scanner(System.in); double sumOfTemps = 0.0;

第一次使用数组。我想我已经找到了建立阵列的开始,但是我有一个问题,我的一个循环没有启动,我不知道为什么。我的“天”循环在达到10天后继续重新开始。任何帮助都将不胜感激。谢谢

public class TempArray
{
    public static void main(String[] args)
    {
        Scanner keyboard = new Scanner(System.in);
        double sumOfTemps = 0.0;
        double [] temperatures = new double[10];        
        for(int index = 0; index <= 10; index++){
            for(int days = 1; days <= 10; days++){
                System.out.print("Enter the temperature for day " + days + " : ");
                temperatures[index] = keyboard.nextDouble();
                sumOfTemps = sumOfTemps + temperatures[index];
公共类临时数组
{
公共静态void main(字符串[]args)
{
扫描仪键盘=新扫描仪(System.in);
双总和=0.0;
双[]温度=新双[10];

对于(int index=0;index您的程序将结束,但由于第一个循环,您将启动第二个循环10次。因此您必须键入100个温度


我不知道您是否在尝试实现,但如果您只想提供10个温度,请去掉第一个循环,只留下第二个循环。

除了我的第二条评论之外,您可能还需要以下内容:

for(int days = 0; days < 10; days++) {
    System.out.print("Enter the temperature for day " + (days+1) + " : ");
    temperatures[day] = keyboard.nextDouble();
    sumOfTemps = sumOfTemps + temperatures[day];
}
for(整数天=0;天<10;天++){
系统输出打印(“输入当天的温度”+(天+1)+“:”;
温度[天]=键盘.nextDouble();
sumOfTemps=sumOfTemps+温度[天];
}

没有人知道,我们看不到整个循环体。由于“索引”循环,您在“天”循环中运行了10次。您预期会发生什么?尝试(int index=0;index<10;index++){我看到了11*11=121键盘。nextDouble();在10*11=110之后,您会得到一个边界异常数组:温度[10]不存在假设显示的三行是整个代码,
days
循环将重复
10
次,第11次循环将以
ArrayIndexOutOfBoundsException
结束,因为您的数组只有
10
的长度,这意味着有效的索引范围是
[0,9]
和索引直到相等
10