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