日期:2014-05-20  浏览次数:20801 次

java数组越界

public class kk{
public static void main(String args[]){
double a,fee;
System.out.println("本月用电的度数是: "+args[0]+"du");
a=Double.parseDouble(args[0]);
if(a>0){
if(a<240){
fee=a*0.15;
output(fee);
}
if(a>240&&a<=540){
fee=(a-240)*0.25+240*0.15;
output(fee);

}

if(a>540){
fee=((a-540)*0.45+300*0.25+240*0.15);
output(fee);
}
}  

else if(a<0){
System.out.println("请输入正确的度数!");

}
}
static void output(double result){
System.out.println("您需要交纳的电费是: "+result+"yuan");
}
}



这是源代码。输出地结果会是如图所示。那里错误?怎么改正?求教


------解决方案--------------------
图看不见 
运行时 后面加上度数
java kk 35
------解决方案--------------------
估计是没有传参数了.
java kk 后边就是参数,多个参数用空格分开
------解决方案--------------------
不知道你要得到怎样结果,图片看不到。不过楼主我建议你整理一下代码格式,还有你的if嵌套块有点混乱啊。。如果有问题看一下是不是这里出问题了!
------解决方案--------------------
Java code

E:\Demo\Test>[color=#FF0000]java kk[/color]
Exception in thread "main" [color=#FF0000]java.lang.ArrayIndexOutOfBoundsException:[/color] 0
        at kk.main(kk.java:4)

------解决方案--------------------
应该是 参数设置出了问题,不过看不见图,具体还得你自己去调试了
------解决方案--------------------
应该是参数没传对
------解决方案--------------------
看不到图呀。不过估计应该是参数设置出现问题了。
------解决方案--------------------
代码可运行
------解决方案--------------------
1。在jcreator里直接运行程序是没有参数的.
2。你的程序需要一个参数 args[0] -应该是本月用了多少度电吧

jcreator没有用过,但是跟所有的IDE一像, jcreator应该有配怎么Run一个程序的地方。可以指定在编译之后,Run的时候传的参数

在Eclipse里是在
Menu > Run > RunConfiguration > Arguments Tab


------解决方案--------------------
exception in thread“ main "java.lang.ArrayIndexOutOfBoundsException: 0 at kk.main(kj.java:5)


kj.java:5 是说明你的数组越界在你的java代码的第5行,这样你可以更好的定位你的问题

main函数的参数args[]是运行时的参数

jcreator也不知道怎么传参数。命令行里面运行就像1楼方式传参

------解决方案--------------------
运行没有问题 不过要给args[0]赋值 不知道lz有没有赋值
Java code

public class Kk{
    public static void main(String args[]){
        double a,fee;
        System.out.println("本月用电的度数是: "+args[0]+"du");
        a=Double.parseDouble(args[0]);
        if(a>0){
            if(a<240){
                fee=a*0.15;
                output(fee);
            }
            if(a>240&&a<=540){
                fee=(a-240)*0.25+240*0.15;
                output(fee);
            }
        
            if(a>540){
                fee=((a-540)*0.45+300*0.25+240*0.15);
                output(fee);
            }
        }else if(a<0){
            System.out.println("请输入正确的度数!");
        }
    }
    static void output(double result){
            System.out.println("您需要交纳的电费是: "+result+"yuan");
        }
    }