天天看點

JavaScript_流程控制簡介

作者:我南柯一夢

流程控制,是任何一門程式設計語言都有的一個文法。

如果你學習C語言,或者學過C#、Java等,應該對“流程控制”很熟悉。

所謂的流程控制,指的是控制程式按照怎樣的順序執行。

在JavaScript中,共有三種流程控制方式(其實任何語言也都隻有這三種啦)。

順序結構

選擇結構

循環結構

順序結構

在JavaScript中,順序結構是最基本的結構。所謂順序結構,

就是代碼按照從上到下、從左到右的“順序”執行,

舉例:

<!DOCTYPE html>

<html>

<head>

<title></title>

<meta charset="utf-8" />

<script>

var str1 = "綠葉學習網";

var str2 = "JavaScript";

var str3 = str1 + str2;

document.write(str3);

</script>

</head>

<body>

</body>

</html>

分析:

按照“從上到下、從左到右”的順序,JavaScript執行順序如下。

第一步:執行var str1 = "綠葉學習網”

第二步:執行var str2 = “JavaScript”

第三步:執行var str3 = str1 + str2

第四步:執行document.write(str3)

JavaScript一般情況下就是按照順序結構來執行的。不過呢,在有些場合,我們單純隻用順序結構就沒法解決問題了。此時就需要引入選擇結構和循環結構。

選擇結構

在JavaScript中,選擇結構指的是根據“條件判斷”來決定使用哪一段代碼。選擇結構有單向選擇、雙向選擇以及多向選擇三種,但是無論是哪一種,JavaScript都隻會執行其中的一個分支,選擇結構流程如圖3-3所示。

循環結構

循環結構,指的是根據條件來判斷是否重複執行某一段程式。若條件為true,則繼續循環;若條件為false,則退出循環。

選擇結構:if

在JavaScript中,選擇結構指的是根據“條件判斷”來決定使用哪一段代碼。

選擇結構有單向選擇、雙向選擇以及多向選擇三種,但不管是哪一種,JavaScript隻會執行其中的一個分支。

在JavaScript中,選擇結構共有兩種方式,一種是if語句,

另外一種是switch語句。這一節我們先來介紹if語句。對于if語句,主要包括以下幾種。

單向選擇:if…

雙向選擇:if…else…

多向選擇:if…else if…else…

if語句的嵌套

單向選擇:if…

文法:

if(條件)

{

}

說明:

這個“條件”一般是一個比較表達式。如果“條件”傳回為true,則會執行“{}”内部的程式;如果“條件”傳回為false,則會直接跳過“{}”内部的程式,然後按照順序來執行後面的程式。

在JavaScript中,由“{}”括起來的程式,我們稱為“語句塊”。語句塊常用于選擇結構、循環結構以及函數體中,JavaScript把一個語句塊看成是一個整體來執行。

舉例:

<!DOCTYPE html>

<html>

<head>

<title></title>

<meta charset="utf-8" />

<script>

var score = 100;

if (score > 60) {

alert("那你很棒棒噢~");

}

</script>

</head>

<body>

</body>

</html>

分析:

由于變量score的值為100,是以score>60傳回true,是以會執行“{}”内部的程式。

 雙向選擇:if…else…

文法:

if(條件)

{

……

}

else

{

……

}

說明:

“if…else…”相對“if…”來說,僅僅是多了一個選擇。當條件傳回為true時,會執行if後面“{}”中的程式;當條件傳回為false時,會執行else後面“{}”中的程式。

舉例:

<!DOCTYPE html>

<html>

<head>

<title></title>

<meta charset="utf-8" />

<script>

var score = 100;

if (score < 60) {

alert("補考!");

} else {

alert("通過!");

}

</script>

</head>

<body>

</body>

</html>

分析:

由于變量score的值為100,而score<60傳回false,是以會執行else後面“{}”中的程式。

對于雙向選擇,我們是可以使用三目運算符來代替的,像上面這個例子,如果用三目運算符來寫,實作代碼如下。

舉例:

<!DOCTYPE html>

<html>

<head>

<title></title>

<meta charset="utf-8" />

<script>

var score = 100;

var result = (score < 60) ? "補考!" : "通過!";

alert(result);

</script>

</head>

<body>

</body>

</html>

多向選擇:if…else if…else…

多向選擇,就是在雙向選擇的基礎上增加多個選擇分支。

文法:

if(條件1)

{

//當條件1為true時執行的代碼

}

else if(條件2)

{

//當條件2為true時執行的代碼

}

else

{

//當條件1和條件2都為false時執行的代碼;

}

說明:

多向選擇文法看似很複雜,實質也是非常簡單的,它隻是在雙向選擇基礎上再增加一個或多個選擇分支罷了。小夥伴們對比一下這兩個的文法格式就知道了。

舉例:

<!DOCTYPE html>

<html>

<head>

<title></title>

<meta charset="utf-8" />

<script>

var time = 21;

if (time < 12)

{

document.write("早上好!");//如果小時數小于12則輸出“早上好!”

}

else if (time > =12 && time < 18)

{

document.write("下午好!"); //如果小時數大于等于12并且小于18,輸出“下午好!”

}

else

{

document.write("晚上好!"); //如果上面兩個條件都不符合,則輸出“晚上好!”

}

</script>

</head>

<body>

</body>

</html>

分析:

對于多向選擇,我們會從第一個if開始判斷,如果第一個if條件不滿足,則判斷第二個if條件……直到滿足為止。一旦滿足,就會退出整個if結構。

if語句的嵌套

在JavaScript中,if語句是可以嵌套使用的。

文法:

if(條件1)

{

if(條件2)

{

當“條件1”和“條件2”都為true時執行的代碼

}

else

{

當“條件1”為true、“條件2”為false時執行的代碼

}

}

else

{

if(條件2)

{

當“條件1”為false、“條件2”為true時執行的代碼

}

else

{

當“條件1”和“條件2”都為false時執行的代碼

}

}

說明:

對于這種結構,我們不需要去刻意去記,隻需要從外到内根據條件一個個去判斷就可以了。

舉例:

<!DOCTYPE html>

<html>

<head>

<title></title>

<meta charset="utf-8" />

<script>

var gendar = "女";

var height = 172;

if(gendar=="男")

{

if(height>170)

{

document.write("高個子男生");

}

else

{

document.write("矮個子男生");

}

}

else

{

if (height > 170)

{

document.write("高個子女生");

}

else

{

document.write("矮個子女生");

}

}

</script>

</head>

<body>

</body>

</html>

分析:

在這個例子中,首先外層if語句的判斷條件gendar=="男"傳回false,是以會執行else語句。然後我們可以看到else語句内部還有一個if語句,這個内層if語句的判斷條件height>170傳回true,是以最終輸出内容為“高個子女生”。

實際上,if語句的嵌套也是很好了解的,說白了就是在if或else後面的“{}”内部再增加一層判斷。對于if語句的嵌套,我們一層一層由外到内判斷就可以了,就像剝洋蔥一樣,非常簡單。我們再來一個例子,讓小夥伴消化一下。

舉例:

<!DOCTYPE html>

<html>

<head>

<title></title>

<meta charset="utf-8" />

<script>

var x = 4;

var y = 8;

if (x < 5)

{

if (y < 5)

{

document.write("x小于5,y小于5");

}

else

{

document.write("x小于5,y大于5");

}

}

else

{

if (y < 5)

{

document.write("x大于5,y小于5");

}

else

{

document.write("x大于5,y大于5");

}

}

</script>

</head>

<body>

</body>

</html>

繼續閱讀