Reading 1: Static Checking > Hailstone Sequence
原文地址: https://courses.edx.org/courses/course-v1:MITx+6.005.1x+3T2016/courseware/Readings_Videos/01-Static-Checking/
冰雹序列
作為一個運行的例子痕届,我們將探討冰雹序列,其定義如下。從數(shù)字n開始,如果n是偶數(shù)那么序列的下一個數(shù)為n的一半,如果n是奇數(shù)那么序列的下一個數(shù)為3n+1仅炊。當n為1時序列結(jié)束。這有些例子:
冰雹序列例子
由于奇數(shù)規(guī)則,序列在到達1前可能會一會兒上升一會兒下降嚷那。人民推測就像冰雹最終都會落地樣,從任何n開始的冰雹序列最終都會到達1杆煞,但這依然是個開放的問題魏宽。為什么這稱為冰雹序列?因為冰雹在云中上上下下决乎,直到積累到足夠的重量使得它能落地队询。
計算冰雹序列
這有一些計算并打印出冰雹序列的代碼。我們將貼出Java和Python的代碼在一起比較构诚。
代碼1
一些地方值得我們注意:
-一些基本的人造表達式無論在Java中還是Python中都非常相似蚌斩, 例如while和if表現(xiàn)地幾乎一樣。
-Java要求在每行后有分號范嘱。這個多余的標點符號看似很平淡凳寺,但是它也給了你更多的自由去組織你的代碼--你可以為了可讀性將一句代碼分成很多行。
-Java要求每個if和while的情況判定式需要用圓括號包圍彤侍。這么做并沒有什么好的理由肠缨,而且我個人很煩這點。
-Java要求中括號包裹代碼塊盏阶,而不是用縮進晒奕。你需要縮進代碼,即使Java不強制要求這一點名斟。代碼是一種交流形式脑慧,而且你不只是在和編譯器交流,還在和人類交流砰盐。人類需要縮進闷袒。我們還是回來談這一點的。