for迴圈不加退出條件 equals的作用

2021-07-10 14:04:14 字數 1096 閱讀 2975

for(int i=0;;i++)

}}catch(exception e)

1.這個for迴圈用來遍歷,其中沒有加迴圈結束條件,因為在迴圈體內,如果i大於了所有圖書,則會超過陣列範圍丟擲異常。 

我覺得這個設計挺巧妙。

但是可能有漏洞,不如加上length,但是這樣的話就不能當沒有找到時丟擲異常。 

解決方法:

private

intsearchbookbyname() throws bookdoesnotexistexception

}throw

new bookdoesnotexistexception("圖書不存在!");

}

用了return語句及時跳出,如果沒有則throw丟擲異常。

2.這裡邏輯判斷相等用的equals,我喜歡用「==」,而根據equals的描述,它還能判斷字串是否相等。 

那麼,「==」 和 equals() 有什麼區別呢?

==: 判斷兩個字串在記憶體中首位址是否相同,即判斷是否是同乙個字串物件

equals(): 比較儲存在兩個字串物件中的內容是否一致

ps:位元組是計算機儲存資訊的基本單位,1 個位元組等於 8 位, gbk 編碼中 1 個漢字字元儲存需要 2 個位元組,1 個英文本元儲存需要 1 個位元組。所以我們看到上面的程式執行結果中,每個漢字對應兩個位元組值,如「學」對應 「-47 -89」 ,而英文本母 「j」 對應 「74」 。同時,我們還發現漢字對應的位元組值為負數,原因在於每個位元組是 8 位,最大值不能超過 127,而漢字轉換為位元組後超過 127,如果超過就會溢位,以負數的形式顯示。

對於null情況:

***.equals(null)和*** == null

區別就是,如果程式能正常執行下去的話

***.equals(null)一定只能返回false

*** == null可能返回true,也可能返回false

因為如果***是null的話

***.equals(null)會丟擲nullpointerexception

*** == null返回true

3、equals的作用和重寫:

for迴圈不加退出條件 equals的作用

for int i 0 i catch exception e 1.這個for迴圈用來遍歷,其中沒有加迴圈結束條件,因為在迴圈體內,如果i大於了所有圖書,則會超過陣列範圍丟擲異常。我覺得這個設計挺巧妙。但是可能有漏洞,不如加上length,但是這樣的話就不能當沒有找到時丟擲異常。解決方法 priva...

錯誤錦集一 迴圈退出條件(遞迴退出條件)

迴圈,就是一次一次的重複。許多時候,需要做多次重複的事情,這個時候就需要迴圈了。迴圈,給我們帶來的極大的簡便。不敢想象,世界沒有迴圈和遞迴的 會是怎樣的!但是,用迴圈的時候,乙個很重要的事情就是退出條件設定!迴圈雖好,但是不能總在迴圈裡面不出來 不出來就是死迴圈了 不過一般而言,不是不出來,而是出不...

退出當前迴圈和退出迴圈

場景 當通過excel一次性匯入多條資料 向資料庫一次性插入多條資料 就要讀取 解析excel,並迴圈插入每條資料,當每插入一條資料前都要判斷此條資料是否已經存在,如果存在用continue退出當前迴圈,進入下一次迴圈。例如 break 跳出迴圈 for int i 0 i 10 i if i 2 ...