黑马程序员技术交流社区

标题: 出现此结果的原因? 请问 [打印本页]

作者: 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
  1. public class Condition {
  2.         public static void main(String args[]) {
  3.                 int x, serial, y;
  4.                 y = 0;
  5.                 x = Integer.parseInt(args[2]);
  6.                 serial = Integer.parseInt(args[3]);//你看这里,你至少要传递4个参数才可以,否则出现数组角标越界异常。
  7.                 if (x > 50)
  8.                         y = x * serial;
  9.                 System.out.println("y=" + y);
  10.         }
  11. }
复制代码

作者: 余清兰    时间: 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个参数都可以。
  1. class Condition {
  2.         public static void main(String args[]) {
  3.                 int x, serial, y;
  4.                 y = 0;
  5.                 for(int i=0;i<args.length-1;i++) {
  6.                         x = Integer.parseInt(args[i]);
  7.                         serial = Integer.parseInt(args[i+1]);
  8.                 if (x > 50)
  9.                         y = x * serial;
  10.                 System.out.println("y=" + y);
  11.                 }
  12.         }
  13. }
复制代码

作者: 王超    时间: 2012-6-12 10:38
数组小标越界,检查运行是传递的参数个数




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2