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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 20140829 中级黑马   /  2014-10-18 18:32  /  1681 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. class A5 {
  2.         public static void main(String[] args) {
  3.                 int[] arr = { 1, 5, 2, 6, 3 };
  4.                 for (int i = 0; i < arr.length; i++) {
  5.                         for (int j = 0; j < arr.length-i-1; j++) {
  6.                                 if (arr[j]>arr[j+1]) {
  7.                                         int temp=arr[j];
  8.                                         arr[j]=arr[j+1];
  9.                                         arr[j+1]=temp;
  10.                                 }
  11.                         }
  12.                         System.out.print(arr[i]);
  13.                 }

  14.         }
  15. }
复制代码


1 个回复

倒序浏览
举例:
arr.length = 5
外循环 i=0
那么内循环里面的控制语句 j<arr.length - i 也就等同于(j < arr.length)
这样下一步if 语句里面的 arr[j+1]) 就下标超界了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马