JavaScript進階之流程控制語句

乘風而歸發表於2017-09-23

1.做判斷(if語句)

if語句是基於條件成立才執行相應程式碼時使用的語句。

語法:

if(條件)
{ 條件成立時執行程式碼}

注意:if小寫,大寫字母(IF)會出錯!

假設你應聘web前端技術開發崗位,如果你會HTML技術,你面試成功,歡迎加入公司。程式碼表示如下:

<script type="text/javascript">
  var mycarrer = "HTML";
  if (mycarrer == "HTML")
  {
    document.write("你面試成功,歡迎加入公司。");
  }
</script>

2.二選一 (if…else語句)

if…else語句是在指定的條件成立時執行程式碼,在條件不成立時執行else後的程式碼。

語法:

if(條件)
{ 條件成立時執行的程式碼}
else
{條件不成立時執行的程式碼}

假設你應聘web前端技術開發崗位,如果你會HTML技術,你面試成功,歡迎加入公司,否則你面試不成功,不能加入公司。

程式碼表示如下:

<script type="text/javascript">
  var mycarrer = "HTML"; //mycarrer變數儲存技能
  if (mycarrer == "HTML")
    { document.write("你面試成功,歡迎加入公司。");  }
  else  //否則,技能不是HTML
    { document.write("你面試不成功,不能加入公司。");}
</script>

3.多重判斷(if..else巢狀語句)

要在多組語句中選擇一組來執行,使用if..else巢狀語句。

語法:

if(條件1)
{ 條件1成立時執行的程式碼}
else if(條件2)
{ 條件2成立時執行的程式碼}

else if(條件n)
{ 條件n成立時執行的程式碼}
else
{ 條件1、2至n不成立時執行的程式碼}

假設數學考試,小明考了86分,給他做個評價,60分以下的不及格,60(包含60分)-75分為良好,75(包含75分)-85分為很好,85(包含85分)-100優秀。

程式碼表示如下:
這裡寫圖片描述

4.多種選擇(Switch語句)

當有很多種選項的時候,switch比if else使用更方便。這裡在做練習的時候default語句後不加break;switch語句失效。

語法:

switch(表示式)
{
case值1:
執行程式碼塊 1
break;
case值2:
執行程式碼塊 2
break;

case值n:
執行程式碼塊 n
break;
default:
與 case值1 、 case值2…case值n 不同時執行的程式碼
break;
}
語法說明:

Switch必須賦初始值,值與每個case值匹配。滿足執行該 case 後的所有語句,並用break語句來阻止執行下一個case。如所有case值都不匹配,執行default後的語句。
假設評價學生的考試成績,10分滿分制,我們按照每一分一個等級將成績分等,並根據成績的等級做出不同的評價。

程式碼如下:
這裡寫圖片描述

執行結果:

評語: 及格,加油!
注意:記得在case所執行的語句後新增上一個break語句。否則就直接繼續執行下面的case中的語句,看以下程式碼:
這裡寫圖片描述

執行結果:

評語: 繼續努力!
評語: 及格,加油!
評語: 湊合,奮進
評語: 很棒,很棒
評語: 高手,大牛
在上面的程式碼中,沒有break停止語句,如果成績是4分,則case 5後面的語句將會得到執行,同樣,case6、7-10後面的語句都會得到執行。

5.重複重複(for迴圈)

很多事情不只是做一次,要重複做。如列印10份試卷,每次列印一份,重複這個動作,直到列印完成。這些事情,我們使用迴圈語句來完成,迴圈語句,就是重複執行一段程式碼。

for語句結構:

for(初始化變數;迴圈條件;迴圈迭代)
{
迴圈語句
}

假如,一個盒子裡有6個球,我們每次取一個,重複從盒中取出球,直到球取完為止。

<script type="text/javascript">
var num=1;
for (num=1;num<=6;num++)  //初始化值;迴圈條件;迴圈後條件值更新
{   document.write("取出第"+num+"個球<br />");
}
</script>

結果:
這裡寫圖片描述

執行思路:
這裡寫圖片描述

6.反反覆覆(while迴圈)

和for迴圈有相同功能的還有while迴圈, while迴圈重複執行一段程式碼,直到某個條件不再滿足。

while語句結構:

while(判斷條件)
{
迴圈語句
}
使用while迴圈,完成從盒子裡取球的動作,每次取一個,共6個球。

<script type="text/javascript">
var num=0;  //初始化值
while (num<=6)   //條件判斷
{
  document.write("取出第"+num+"個球<br />");
  num=num+1;  //條件值更新
}
</script>

7.來來回回(Do…while迴圈)

do while結構的基本原理和while結構是基本相同的,但是它保證迴圈體至少被執行一次。因為它是先執行程式碼,後判斷條件,如果條件為真,繼續迴圈。

do…while語句結構:

do
{
迴圈語句
}
while(判斷條件)
我們試著輸出5個數字。

<script type="text/javascript">
   num= 1;
   do
   {
     document.write("數值為:" +  num+"<br />");
     num++; //更新條件
   }
   while (num<=5)
</script>

執行結果:
這裡寫圖片描述

為什麼呢?我們來看下執行思路:
這裡寫圖片描述

8.退出迴圈break

在while、for、do…while、while迴圈中使用break語句退出當前迴圈,直接執行後面的程式碼。

格式如下:

for(初始條件;判斷條件;迴圈後條件值更新)
{
if(特殊情況)
{break;}
迴圈程式碼
}
當遇到特殊情況的時候,迴圈就會立即結束。看看下面的例子,輸出10個數,如果數值為5,就停止輸出。
這裡寫圖片描述

執行結果:
這裡寫圖片描述

注:當num=5的時候迴圈就會結束,不會輸出後面迴圈的內容。

9.繼續迴圈continue

continue的作用是僅僅跳過本次迴圈,而整個迴圈體繼續執行。

語句結構:

for(初始條件;判斷條件;迴圈後條件值更新)
{
if(特殊情況)
{ continue; }
迴圈程式碼
}
上面的迴圈中,當特殊情況發生的時候,本次迴圈將被跳過,而後續的迴圈則不會受到影響。好比輸出10個數字,如果數字為5就不輸出了。

這裡寫圖片描述

執行結果:
這裡寫圖片描述

注:上面的程式碼中,num=5的那次迴圈將被跳過。
10.程式設計練習
在一個大學的程式設計選修課班裡,我們得到了一組參加該班級的學生資料,分別是姓名、性別、年齡和年級,接下來呢,我們要利用JavaScript的知識挑出其中所有是大一的女生的的名字哦。

學生資訊如下:

('小A','女',21,'大一'),  ('小B','男',23,'大三'),

('小C','男',24,'大四'),  ('小D','女',21,'大一'),

('小E','女',22,'大四'),  ('小F','男',21,'大一'),

('小G','女',22,'大二'),  ('小H','女',20,'大三'),

('小I','女',20,'大一'),  ('小J','男',20,'大三')

任務
第一步: 把這些資料組成一個陣列,方便我們之後操作哦。

提示: 使用二維陣列。
第二步: 篩選資料吧,首先找出都是大一的所有資訊 ;

第三步: 最後再一次篩選上一步得到的資料,列印出都是女生的姓名 ;

提示: 可以用switch 或 if 語句進行篩選。

<!DOCTYPE  HTML>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>流程控制語句</title>
<script type="text/javascript">
var infos=[["小A","女",21,"大一"],["小B","男",23,"大三"],
["小C","男",24,"大四"],['小D','女',21,'大一'],
['小E','女',22,'大四'],['小F','男',21,'大一'],
['小G','女',22,'大二'],['小H','女',20,'大三'],
['小I','女',20,'大一'],['小J','男',20,'大三']];
 //第一步把之前的資料寫成一個陣列的形式,定義變數為 infos
 for(var i=0;i<10;i++){
    if(infos[i][3]=="大一"&&infos[i][1]=="女"){
    document.write(infos[i][0]+"<br>");
    }
 }

 //第一次篩選,找出都是大一的資訊


 //第二次篩選,找出都是女生的資訊



</script>
</head>
<body>
</body>
</html>

相關文章