黑马程序员技术交流社区
标题:
出现此结果的原因? 请问
[打印本页]
作者:
sbeeqnui1987
时间:
2012-6-12 09:37
标题:
出现此结果的原因? 请问
本帖最后由 sbeeqnui1987 于 2012-6-19 21:45 编辑
class Condition
{
public static void main(String args[])
{
int x,serial,y;
y=0;
x=Integer.parseInt(args[2]);
serial=Integer.parseInt(args[3]);
if(x>50)
y=x*serial;
System.out.println("y="+y);
}
}
得出的结果总是:Exception in thead "main"java.lang.ArrayLndexOutOfBoundsException:2 at Condition.main<Condition.java:7>
为什么?
作者:
杨康
时间:
2012-6-12 09:50
ArrayLndexOutOfBoundsException:2 数组角标越界异常
args 是主函数在运行时传递过来的参数,你的程序在运行时你传递了几个参数呢?
作者:
任睦强
时间:
2012-6-12 09:51
数组越界
public static void main(
String args[])
它现在的长度为0
作者:
s_gw
时间:
2012-6-12 09:55
运行时必须传递参数的,楼主忘了吧
作者:
李月
时间:
2012-6-12 09:56
public class Condition {
public static void main(String args[]) {
int x, serial, y;
y = 0;
x = Integer.parseInt(args[2]);
serial = Integer.parseInt(args[3]);//你看这里,你至少要传递4个参数才可以,否则出现数组角标越界异常。
if (x > 50)
y = x * serial;
System.out.println("y=" + y);
}
}
复制代码
作者:
余清兰
时间:
2012-6-12 09:57
索引是从0开始的,
serial=Integer.parseInt(args[3]);
代表你要输入4个参数
否则就数组下标越界了
作者:
姚玉鹏
时间:
2012-6-12 10:03
运行的时候要传递四个参数.. 否则(args[3] 就会提示数组角标越界
作者:
刘笑
时间:
2012-6-12 10:06
运行的时候要带参数,你如果直接在eclipse里面默认情况下运行,肯定是没有参数的,所以要设置参数才可以。
作者:
何拴绪
时间:
2012-6-12 10:31
你的代码没错,只是在运行时要输入4个数值类型的字符串,可以用一个for循环这样可以输>=2个参数都可以。
class Condition {
public static void main(String args[]) {
int x, serial, y;
y = 0;
for(int i=0;i<args.length-1;i++) {
x = Integer.parseInt(args[i]);
serial = Integer.parseInt(args[i+1]);
if (x > 50)
y = x * serial;
System.out.println("y=" + y);
}
}
}
复制代码
作者:
王超
时间:
2012-6-12 10:38
数组小标越界,检查运行是传递的参数个数
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2