A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© sbeeqnui1987 中级黑马   /  2012-6-12 09:37  /  2153 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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>
为什么?

评分

参与人数 1技术分 +1 收起 理由
赵志勇 + 1 赞一个!

查看全部评分

9 个回复

正序浏览
数组小标越界,检查运行是传递的参数个数
回复 使用道具 举报
你的代码没错,只是在运行时要输入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:06:34
8#
运行的时候要带参数,你如果直接在eclipse里面默认情况下运行,肯定是没有参数的,所以要设置参数才可以。
回复 使用道具 举报
运行的时候要传递四个参数.. 否则(args[3] 就会提示数组角标越界
回复 使用道具 举报
索引是从0开始的,
serial=Integer.parseInt(args[3]);
代表你要输入4个参数
否则就数组下标越界了
回复 使用道具 举报
  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. }
复制代码
回复 使用道具 举报
运行时必须传递参数的,楼主忘了吧
回复 使用道具 举报
数组越界   
public static void main(String args[])
它现在的长度为0
回复 使用道具 举报
ArrayLndexOutOfBoundsException:2 数组角标越界异常
args 是主函数在运行时传递过来的参数,你的程序在运行时你传递了几个参数呢?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马