你這里是忽略了循環(huán)的一個問題,
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、重慶小程序開發(fā)公司、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了岑溪免費建站歡迎大家使用!
當(dāng)循環(huán) i不滿足ib.length的時候 i也就等于4了(這里已經(jīng)執(zhí)行了i++ 所以是4)
循環(huán)j不滿足jb[i].length的時候 j也就等于5了
而你后面取值b[4][5] 肯定是越界的 nt b[][]=new int[4][5]; 最大取值是b[3][4] 這里是因為數(shù)組是從0開始所以3取得就是第4位
使用集合或數(shù)組之前要先進行null和元素個數(shù)的檢查
if(check){//操作}就可以避免了嘛,
而且這也是一種編碼規(guī)范
你這個下標(biāo)越界是因為你最后一個循環(huán)里面有c++但是你循環(huán)最后一個角標(biāo)是6,++成7所以越界,其次book[c]=temp; book[c++]=temp; temp=book[c];你這三條轉(zhuǎn)換的不覺得有點奇怪嗎 book[c]book[c++]還有if里的這個判斷 后面的c++是先++了在用角標(biāo)去拿值了還是先拿值了再去運行++
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
必然是越界的,你仔細算一下循環(huán),我想導(dǎo)致你達不到的原因可能是
if(x0)
order=true;
x = x+2;
這個判斷沒有加大括號
if(x0){
order=true;
x = x+2;
}
同學(xué). Scanner類接收系統(tǒng)輸入的機制是監(jiān)聽到空格或者回車時即默認輸入結(jié)束,
當(dāng)你使用
for (int i = 0;i numbers.length ;i++ )
{
numbers[i] = input.nextInt();
}
來接收系統(tǒng)輸入時,請確保輸入一個數(shù)字完成后鍵入一個回車,這樣才能保證數(shù)據(jù)的正確,
如果你連續(xù)輸入2次回車或者空格,引用數(shù)據(jù)類型會默認為空,基本數(shù)據(jù)類型則會不存在,數(shù)組中后續(xù)數(shù)字會補全至之前少的數(shù)字,所以當(dāng)連續(xù)出現(xiàn)回車或空格時,會出現(xiàn)數(shù)組越界