第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

.Array Index Out Of Bounds Exception in for loop

.Array Index Out Of Bounds Exception in for loop

ibeautiful 2023-06-08 19:31:54
Eclipse IDE 抱怨使用/訪問(wèn)書(shū)籍?dāng)?shù)組的 for 循環(huán)越界。它抱怨的第 (19) 行是: if (books[x] == null) {我不相信這是它抱怨的問(wèn)題,因?yàn)槲乙呀?jīng)用許多不同的東西替換了它,但它仍然在抱怨。一行是 for 循環(huán)的第一行 for (int x = 0; x < capacity ; ++x)我也三重檢查了條件是否正確,應(yīng)該是。容量為 5,這意味著對(duì)象位置數(shù)組將位于 0、1、2、3、4,因此根據(jù)我對(duì)數(shù)組的了解,從 0 開(kāi)始 x 應(yīng)該是正確的。庫(kù)類(帶循環(huán)的)    package exercises;    public class Library {        private int capacity;        private Book[] books = new Book[capacity];        public Library(int capacity) {            if (capacity > 1) {                this.capacity = capacity;            }            else {                this.capacity = 4;            }        }        public boolean addBook(Book book) {            int freeLocation = -1;            @SuppressWarnings("unused")            int notFreeLocation = -1;            for (int x = 0; x < capacity ; ++x) {                if (books[x] == null) { /*this is line 19*/                    freeLocation = x;                }                else {                    notFreeLocation = x;                }            }            if (freeLocation == -1) {                return false;            }            else {                books[freeLocation] = book;                return true;            }        }我在 exercises.Library.addBook(Library.java:19) 和 exercises.LibraryApp.main(LibraryApp.java:8) 處收到錯(cuò)誤“線程“主”java.lang.ArrayIndexOutOfBoundsException 中的異常:0”
查看完整描述

1 回答

?
慕桂英3389331

TA貢獻(xiàn)2036條經(jīng)驗(yàn) 獲得超8個(gè)贊

當(dāng)這完成時(shí)Library:


private int capacity;

private Book[] books = new Book[capacity];

super()構(gòu)造函數(shù)中的代碼尚未運(yùn)行(這些初始化在最開(kāi)始 [或在子類之后] 插入到構(gòu)造函數(shù)中)。所以capacity有它的默認(rèn)值,0。后來(lái)你分配給capacity,但為時(shí)已晚。


反而:


public class Library {

    private int capacity;

    private Book[] books;                     // *** Don't initialize it here

    public Library(int capacity) {

        if (capacity > 1) {

            this.capacity = capacity;

        }

        else {

            this.capacity = 4;

        }

        this.books = new Book[this.capacity]; // *** Initialize it here

    }

但是這里還有另一個(gè)有用的東西要學(xué)。在遍歷數(shù)組或類似數(shù)組時(shí),使用數(shù)組的大小知識(shí),而不是其他信息源 ( capacity)。所以:


for (int x = 0; x < this.books.length ; ++x) {

// -----------------^^^^^^^^^^^^^^^^^

堅(jiān)持真相的主要來(lái)源。capacity:-)(事實(shí)上,您可能根本不需要您的實(shí)例成員。)


查看完整回答
反對(duì) 回復(fù) 2023-06-08
  • 1 回答
  • 0 關(guān)注
  • 155 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)