java小白求大神帮看一下为什么会发生数组越界。代码如下:

问题描述

java小白求大神帮看一下为什么会发生数组越界。代码如下:

package arraytest;

public class ArrayTestSort {

public static void main(String[] args) {
    int i,j=0;
    int[] arr = new int[]{100,40,60,87,34,11,56,0};
    int temp = 0;
    for(i = 0;i<arr.length;i++){
        for(j = 0;j<arr.length-i-1;j++){//这里的j<arr.length-i-1 变成j<arr.length-i。时为什么会发生数组越界?
            if(arr[j]<arr[j+1]){
                temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
        System.out.print(arr[i]+"t");
    }

}

}

解决方案

 for(i = 0;i<arr.length;i++){
for(j = 0;j<arr.length-i-1;j++)

->
for(i = 0;i<arr.length - 1;i++){
for(j = 0;j<i;j++)

解决方案二:

数组的下标是从0开始取得 arr[0]=100

解决方案三:

当i等于零时,j<arr.length-i-1 即j的最大取值是 arr.length-1。然后 j +1 的下标去访问 arr 就越界了。

解决方案四:

当i等于arr.length-1时,j有一种小于0的情况,这是不行的

解决方案五:

j的最大取值是 arr.length-1

解决方案六:

i = 0的时候 j可以取到 length-1 但是你下面还要算arr[j+1] 数组最大下标是length-1 所以会越界啦

解决方案七:

当i=0时,for(j=0;j<8-0;j++){}当j=7时,可以进入里面的循环,if(arr[7]<arr[8]){}这里arr[8]数组越界了。

解决方案八:

当i=0时,,arr.length-0=8,,,当j=7时,,j+1=8,,arr[8]有没越界,,大声告诉我

解决方案九:

当i等于零时,j<arr.length-i-1 即j的最大取值是 arr.length-1。然后 j +1 的下标去访问 arr 就越界了。
时间: 2025-01-02 08:12:16

java小白求大神帮看一下为什么会发生数组越界。代码如下:的相关文章

创建单链表并利用栈将其逆置...小白求大神帮改一下多谢。

问题描述 创建单链表并利用栈将其逆置...小白求大神帮改一下多谢. 建立单链表时输入链表数据(字符数据)以'#'号结束. #include #include #define M 20 typedef struct { char data[M]; int top; }SeqStack; typedef struct lnode { char data; struct lnode*next; }LNode,*LinkList; SeqStack*Init_SeqStack() { SeqStack*

修改excel其中一列的值,急求!本人小白求大神帮忙看个问题

问题描述 现在有一列值,读取它这列的值,并且修改它为:有规则的修改它的值.例如:ABA对应AAA,ABB对应BBB,ABC对应CCC这样依次有规则的修改下来,因为A列的值会重复,所以有重复的值该怎么改还是怎么改,比如第一行和第五行,第二行和第六行这样的,不要用给他一个list然后循环遍历这个list例如:/*introwcount=0;foreach(variteminlist){//修改第四列数据rowcount++;if(item.D=="ABA"){//修改DLH修改为AAADe

代码分析-JAVA 求大神帮看下这段代码 怎么修改 救命啊

问题描述 JAVA 求大神帮看下这段代码 怎么修改 救命啊 真心看不懂 public static char[] a(char[] paramArrayOfChar) { char[] arrayOfChar1 = new char[12]; char[] arrayOfChar2 = new char[12]; arrayOfChar2[0] = '?'; arrayOfChar2[1] = '?'; arrayOfChar2[2] = 'o'; arrayOfChar2[3] = '/';

java 调用cmd 执行读取sql文件问题?求大神帮看下

问题描述 java 调用cmd 执行读取sql文件问题?求大神帮看下 Runtime run =Runtime.getRuntime(); Process process = run.exec("cmd /cmysql -u root -pssdlh test <d:/test.sql"); InputStreamReader ir = new InputStreamReader(process .getInputStream()); LineNumberReader input

求java大神帮看解答一下报错,在线等

问题描述 求java大神帮看解答一下报错,在线等 16:29:21,442 ERROR ContextLoader:215 - Context initialization failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userServiceImpl': Injection of resource fields failed; nested except

构造方法 数组-小白求大神解惑!! JAVA带参数构造函数与数组

问题描述 小白求大神解惑!! JAVA带参数构造函数与数组 public class TextInsert { private Object[] ins; private int size; public TextInsert(int size){ ins=new Object[size]; } public static void main(String[] args){ TextInsert list=new TextInsert(2); 我想请问下,这里的list 跟 ins 有什么关系,

关于java问题-小白求大神指点if语句里变量问题?

问题描述 小白求大神指点if语句里变量问题? i++和++i储存的位置在哪?栈.堆? 解决方案 这是一个无聊的问题参考 http://www.guokr.com/blog/471312/ 解决方案二: 跟存储在哪没有关系,这是存储在栈中的.i++是后缀表达式,就是先取出i的值然后再对 i 进行加1,而++i是前缀表达式,即先将i的值加1在使用. 解决方案三: 首先,i作为普通基础类型的变量,是存在栈中的. 解决方案四: switch语句中在case块里声明变量会遇到提示"Expected exp

数据分析 大数据-数据分析小白求大神指导入门

问题描述 数据分析小白求大神指导入门 数据分析小白一名,分到大数据部,即将入职.完全不知道怎么融入工作,迷茫啊!请问一下大家数据分析师主要会用到什么软件?求各位大神介绍数据分析相关入门书籍和数据分析必须的入门软件教程 解决方案 spss数据库,python,matlab,其实要学的东西还是很多的,主要看你用数据分析来干啥了 解决方案二: 可以先学习一下python,使用方便,提供的类库也丰富.numpy,pandas,matplotlib 解决方案三: pathon,入门的首选!! 解决方案四:

c语言编程-新手小白求大神!!!

问题描述 新手小白求大神!!! 这个程序怎么改才能实现继续输入呢,直到正确输入奇数为止. 解决方案 图看不清楚呢..最好把代码放到代码片里. 解决方案二: 求大神帮忙新手初学 解决方案三: 你这不是坑人吗 解决方案四: 这个截图也太难看清楚; 你直接代码发上来.