2014年辛星Javascript解讀第四節 流程式控制制語句
上一節我們介紹了函數,本小節我們介紹一下流程式控制制語句,對於任何一門程式設計語言來說,流程式控制制都是非常重要的,也就是我們常說的順序結構、選擇結構和迴圈結構。
************選擇結構***************
1.Javascript中用條件陳述式來實現選擇結構,它提供的選擇結構主要是if語句、if....else語句和if...else if ...else語句,還有一個switch語句,和PHP很像。
2.這些語句都比較基礎,因此我們這裡只給出if...else if..else的形式的虛擬碼如下:
if (condition1) { 當條件 1 為 true 時執行的代碼 }else if (condition2) { 當條件 2 為 true 時執行的代碼 }else { 當條件 1 和 條件 2 都不為 true 時執行的代碼 }
3.下面是switch語句的虛擬碼:
switch(n){case 1: 執行代碼塊 1 break;case 2: 執行代碼塊 2 break;default: n 與1和2 不同的時候執行的代碼}
4.需要說明的是:這裡的break用於跳出該switch語句,default用於當上面的內容都不會被匹配到的時候再去執行的代碼。
************for迴圈************
1.js的for迴圈和C、C++、Java、PHP的for迴圈都是一樣的,都是下面的形式,先看虛擬碼:
for(初始條件;最終判斷條件;逐步執行增量){ //每次迴圈執行的代碼}
2.然後就是一個執行個體:
var x = 0;for(var i = 0;i <5;i++){ x += i;}
3.這樣之後的x就是10,它是計算了從0加到4的和。
4.我們可以用for in迴圈來遍曆對象的屬性,比如如下代碼:
var msg = "";var person = {name:"辛星",age:24};for(x in person){ msg = msg + person[x];}alert(msg);
5.上面的.person是一個對象,關於對象我們後面還會說明,這裡我們看到x是作為person的一個屬性出現的,person調用這個屬性就像我們在其他程式設計語言中使用數組那樣的用法。
***************while迴圈******************
1.while語句的文法的虛擬碼:
while(條件){ //功能代碼}
2.那我們根據此虛擬碼寫出它的真正的程式碼範例:
var sum = 0;var i = 0;while (i <10){ sum += i; i++;}alert(sum);
需要注意的一點就是這裡的i++不要忽略,否則代碼會進入死迴圈。
3.同理還有do...while迴圈語句,虛擬碼如下:
do{ //功能代碼;}while(條件);
4.do...while迴圈和while迴圈的唯一區別就是do...while會先迴圈一次,然後判斷條件,其實,我們可以用while迴圈來代替它,因此有些語言就捨棄了do...while語句,但是我們的js語言還是支援的。
**************小結**************
1.js代碼作為指令碼,它的程式執行順序是自上至下的,它不會像C語言那樣從main函數開始。
2.本小節講到了三種順序和幾個語句,有其他程式設計語言基礎的話,很容易理解,而且js本身就仿照了c 的文法,就更容易看懂了。