第四章 控制執行流程

飄過的小熊發表於2016-09-07

第四章 控制執行流程

標籤(空格分隔): AgainThinkingInJava


挑出幾個似乎已經忘記了的點


  • 自動生成恰當的陣列range()
  • goto語句的標籤
  • if語句與switch語句的執行順序與選擇問題
  • 課後題斐波那契和吸血鬼數的思考

自動生成恰當的陣列range()


range()主要是配合Foreach語句。當然該方法主要是產生一個int陣列
range(10)會產生一個大小為10的int陣列

要使用這樣一個方法就要引用作者的包

for (int i:range(10)){
            System.out.println(i);
        }

多個過載版本

range(5,10)  5.。。9
range(5,20,3)  5....19 step 3

range()一般會降低效率,於是作者提到在效能調優的時候使用模擬器來綜合評價。


goto語句的標籤


我總覺得這樣多重的標籤巢狀會使得程式碼非常不易閱讀,因此不打算在程式碼中使用這種標籤,事實上我還沒有在其他程式碼中見過人家怎麼使用的。因此只要知道使用

使用標籤的唯一理由就是因為有迴圈巢狀存在,而且想從多層的巢狀中break和continue.


if語句與switch語句的執行順序與選擇問題


switch語句是從頭到尾的所有case都要判斷一句,同樣,if語句也是從開始位置執行,從頭到尾的判斷條件。
至於有一種讓判斷他們的效率問題的說法,我覺得從某種角度來說沒有什麼可比性。switch與多個if else 語句的執行情況是差不多的。
不同的地方在於,switch語句的使用範圍相對來說比較狹窄,主要使用在選擇因子是int或者char型別的整數值的時候。但是if else語句使用就比較靈活的,場合多多的。


課後題斐波那契和吸血鬼數的思考


  • 斐波那契的實現是遞迴,但是這種方式是效率最低的。我找了一下有很多基本的實現方式
    斐波那契序列的七種實現

  • 吸血鬼數,。,。沒錯,人家使用了一個叫什麼什麼理論的東西

if x*y is a vampire number then x*y=x+y(mod 9 )


國際慣例:總結


好像沒有什麼能總結的

相關文章