【问题标题】:Hi I'm beginner in java and started coding recently here's my program it showing an error of ArryIndexOutOfBound [duplicate]嗨,我是 java 初学者,最近开始编码,这是我的程序,它显示 ArryIndexOutOfBound 错误 [重复]
【发布时间】:2020-09-02 16:37:48
【问题描述】:
// It's program of cars and it's colours
 
import java.util.Scanner;
    class Details
      {
      String name;
     String colour;
     public Details( String name, String colour)
      {
        this.name=name;
        this.colour=colour;
      }
        }

          public class Car {
         public static void main(String[] args) {
        int i, num;
        Scanner sc=new Scanner(System.in); 
        System.out.println("enter the size");
        num=sc.nextInt();
        Details cars[]=new Details[num];
        System.out.println("enter name and colour");
        for( i=0;i<cars.length;i++);
        {
            cars[i].name=sc.next();
            cars[i].colour=sc.next();
            System.out.println("name : "+cars[i].name+" \n colour :"+cars[i].colour);
        }
        sc.close();

    }
       
}

【问题讨论】:

标签: java indexoutofboundsexception


【解决方案1】:

您在声明 for 循环的行上留下了额外的分号。

这是一个有效的语法,如果你将代码分解成逻辑块,你会得到以下结果:

for (i = 0; i < cars.length; i++);
        
{
  cars[i].name = sc.next();
  cars[i].colour = sc.next();
  System.out.println("name : " + cars[i].name + " \n colour :" + cars[i].colour);
}

在这里,你有 for 循环,它在 i 等于 2 之前什么都不做。这个循环后面是一个块,它执行一些 i 已经等于 2 的代码!

【讨论】:

    猜你喜欢
    • 2018-08-26
    • 2021-04-10
    • 1970-01-01
    • 1970-01-01
    • 2013-03-14
    • 1970-01-01
    • 1970-01-01
    • 2019-02-06
    • 1970-01-01
    相关资源
    最近更新 更多