public class stwich1 {
public static void main(String[] args) {
int weekday=Integer.parseInt(args[0]);
switch(weekday)
{
case 0:System.out.println("0");break;
case 1:System.out.println("1");break;
case 2:System.out.println("3");break;
case 3:System.out.println("3");break;
} }}
为什么程序报错:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at stwich1.main(stwich1.java:6)
求大大们给予解释,小弟刚修JAVA

解决方案 »

  1.   

    运行的时候没给参数吧?
    int weekday=Integer.parseInt(args[0]);
      

  2.   


    java stwich1  2因为你没有传参数进去,如果是命令行,向上面一样运行!别的IDE的,要配置参数的!
      

  3.   

    你再弄个default的就不会报错了
      

  4.   

    出现异常的原因:没有给程序的默认参数传值
    因为args是main方法的参数,默认情况是没有值的,如果在main方法中使用,需要为其赋值解决方案如下运行程序的方法:
    1.使用命令行
    java stwich1 HelloWorld
    注:HelloWorld就是给args[0]传的值
    如果需要为args传递多个值,命令行如下
    java stwich1 Hello World ……
    2.使用IDE,比如Eclipse/MyEclipse
    需要配置运行程序的参数,具体配置说明
    Run Configuration——>Arguments——>Variables——>Edit Variables——>New(Name……,Value……)
    配置好了重新run就ok了/*LZ要加油啊*/
      

  5.   

    default:
    System.out.println(“default”);
    break;
    在switch结束之前加上上面那段即可   就是默认会做上述处理
      

  6.   

    得命令行传值,具体怎么传给忘记了,网上搜搜吧,只记得老师当时将mian的时候演示了一下,呵呵
      

  7.   


    这是胡言乱语么……
    lz的程序根本走不到这一步,在parseInt或者说args[0]时就挂了,没传参数args是个长度为0的空数组
      

  8.   

    args[0]没有值,楼主初学JAVA不应该取默认参数,自己自定义一个变量比较好。
      

  9.   

    javac stwich1.java
    java stwich1 1
      

  10.   

    args数组保存的是运行程序时传入的参数
    java stwich1 1 2 3
    那么args={1,2,3}   args[0]=1
    要是运行的时候楼主只输入  java stwich1
    那么args[0] 是没有意义的 所以这里报错了另外一个隐患是: 要是传入的第一个参数必须是int类型的