当前位置: 代码迷 >> J2SE >> java数组越界?解决方案
  详细解决方案

java数组越界?解决方案

热度:54   发布时间:2016-04-24 00:49:15.0
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");        }    }
  相关解决方案