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,如果超過就會溢位,以負數的形式顯示。
* compares this string
tothe specified object. the result
is if
and only if
the argument is
not and
is a object that represents the same sequence of
characters
as this
* object.
** @param anobject
* the object to compare this against
** @return if
thegiven object represents a
* equivalent to this string, otherwise
** @see #compareto(string)
* @see #equalsignorecase(string)
*/public boolean
equals(object anobject)
if (anobject instanceof string)
return
true;}}
return
false;
}
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 ...