神话般的代码
考慮以下代碼段:
int max = 10; int a = 0; while (true) {// do a thing that may result in an early return if (++a >= max) {break;} }throw new RuntimeException("It ran out of attempts");上面有一些WTF。 循環(huán)有點不可思議,控制流似乎在幾個地方……但是它的核心是一些編碼代碼– ++a >= max
在這種情況下,肯定可以進行10次嘗試嗎? 還是9點? 還是11?
一般情況:
如果您一眼就無法確定邏輯表達式在做什么,那就太復(fù)雜了。
碰巧的是,我認為這樣做有10次嘗試:
- ++a是一個前綴增量,這增加了1到a
- >=表示a不能為10或更大,并且在增量之后執(zhí)行
- a從0開始
- 第一次嘗試為0 ,第十次嘗試為9
- 所以它做了10次嘗試
……可能。
盡管編程語言允許我們使用快捷方式來做事情和表達相同事情的幾種方法,但顯然可以立即識別for for (i=0; i<10; i++)樣式表達。 編碼代碼幾乎總是可以更好地重構(gòu)。
循環(huán)似乎易于編碼 。
翻譯自: https://www.javacodegeeks.com/2020/03/mythematical-codey-code.html
總結(jié)
- 上一篇: 安卓互联导航工厂密码(安卓互联导航)
- 下一篇: 打破了vs你错了