黑马程序员技术交流社区

标题: 请问,这个程序为什么无法通过编译呢 [打印本页]

作者: wangyuyus    时间: 2013-11-3 00:04
标题: 请问,这个程序为什么无法通过编译呢
package com.baidu.traffic;

import java.util.*;

public class shuzu {

        /**将一个数组逆序输出
            
         * @param args
         */
        public static void main(String[] args)
        {
                // TODO Auto-generated method stub
                Scanner s = new Scanner(System.in);
                int a[]=new int[20];
                System.out.println("请输入多个正整数(输入-1表示结束):");
                int i=0,j;
                while(a[i-1]!=-1){
                        a[i]=s.nextInt();
                        i++;
                };
                System.out.println("你输入的数组为:");
                for( j=0;j<i-1;j++){
                        System.out.println(a[j]+" ");
                }
                System.out.println("\n数组逆序输出为:");
                for( j=i-2;j>=0;j=j-1){
                        System.out.println(a[j]+" ");
                }
        }

}

作者: 王东    时间: 2013-11-3 00:14
  1. package com.baidu.traffic;

  2. import java.util.*;

  3. public class shuzu {

  4.         /**将一个数组逆序输出
  5.             
  6.          * @param args
  7.          */
  8.         public static void main(String[] args)
  9.         {
  10.                 // TODO Auto-generated method stub
  11.                 Scanner s = new Scanner(System.in);
  12.                 int a[]=new int[20];
  13.                 System.out.println("请输入多个正整数(输入-1表示结束):");
  14.                 int i=0,j;
  15.                 while(a[i-1]!=-1){                                               //你这里数组越界了,本来是int i= 0 ,这里有个 i -1;
  16.                         a[i]=s.nextInt();
  17.                         i++;
  18.                 };
  19.                 System.out.println("你输入的数组为:");
  20.                 for( j=0;j<i-1;j++){
  21.                         System.out.println(a[j]+" ");
  22.                 }
  23.                 System.out.println("\n数组逆序输出为:");
  24.                 for( j=i-2;j>=0;j=j-1){
  25.                         System.out.println(a[j]+" ");
  26.                 }
  27.         }

  28. }
复制代码
加油,哥们
作者: 李复安    时间: 2013-11-3 00:30
while(a[i-1]!=-1这一行一开始就是判断a[-1]的,数组角标越界异常了




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