重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
你这里是忽略了循环的一个问题,
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、重庆小程序开发公司、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了岑溪免费建站欢迎大家使用!
当循环 i不满足ib.length的时候 i也就等于4了(这里已经执行了i++ 所以是4)
循环j不满足jb[i].length的时候 j也就等于5了
而你后面取值b[4][5] 肯定是越界的 nt b[][]=new int[4][5]; 最大取值是b[3][4] 这里是因为数组是从0开始所以3取得就是第4位
使用集合或数组之前要先进行null和元素个数的检查
if(check){//操作}就可以避免了嘛,
而且这也是一种编码规范
你这个下标越界是因为你最后一个循环里面有c++但是你循环最后一个角标是6,++成7所以越界,其次book[c]=temp; book[c++]=temp; temp=book[c];你这三条转换的不觉得有点奇怪吗 book[c]book[c++]还有if里的这个判断 后面的c++是先++了在用角标去拿值了还是先拿值了再去运行++
a[i][j]=a[i+1][j+1];这里有问题 a[i+1]没问题,但是a[i+1][j+1]就有问题了。 例如a[0][3]没问题,但是a[1][4]就有问题了。 你判断的是ja[i].length-1,没判断ja[i+1].length-1
必然是越界的,你仔细算一下循环,我想导致你达不到的原因可能是
if(x0)
order=true;
x = x+2;
这个判断没有加大括号
if(x0){
order=true;
x = x+2;
}
同学. Scanner类接收系统输入的机制是监听到空格或者回车时即默认输入结束,
当你使用
for (int i = 0;i numbers.length ;i++ )
{
numbers[i] = input.nextInt();
}
来接收系统输入时,请确保输入一个数字完成后键入一个回车,这样才能保证数据的正确,
如果你连续输入2次回车或者空格,引用数据类型会默认为空,基本数据类型则会不存在,数组中后续数字会补全至之前少的数字,所以当连续出现回车或空格时,会出现数组越界