JavaScript If...Else、Switch、For、While、Break、Continue語句

来源:http://www.cnblogs.com/iceflorence/archive/2016/08/30/5822858.html
-Advertisement-
Play Games

一,JavaScript If...Else 語句 條件語句 通常在寫代碼時,您總是需要為不同的決定來執行不同的動作。您可以在代碼中使用條件語句來完成該任務。 在 JavaScript 中,我們可使用以下條件語句: if 語句 - 只有當指定條件為 true 時,使用該語句來執行代碼 if...el ...


一,JavaScript If...Else 語句

條件語句

通常在寫代碼時,您總是需要為不同的決定來執行不同的動作。您可以在代碼中使用條件語句來完成該任務。

在 JavaScript 中,我們可使用以下條件語句:

  • if 語句 - 只有當指定條件為 true 時,使用該語句來執行代碼
  • if...else 語句 - 當條件為 true 時執行代碼,當條件為 false 時執行其他代碼
  • if...else if....else 語句 - 使用該語句來選擇多個代碼塊之一來執行
  • switch 語句 - 使用該語句來選擇多個代碼塊之一來執行

If 語句

只有當指定條件為 true 時,該語句才會執行代碼。

語法

if (條件)
  {
  只有當條件為 true 時執行的代碼
  }

註意:請使用小寫的 if。使用大寫字母(IF)會生成 JavaScript 錯誤!

實例

當時間小於 20:00 時,生成一個“Good day”問候:

if (time<20)
  {
  x="Good day";
  }

 

二,JavaScript Switch 語句

JavaScript Switch 語句

請使用 switch 語句來選擇要執行的多個代碼塊之一。

語法

switch(n)
{
case 1:
  執行代碼塊 1
  break;
case 2:
  執行代碼塊 2
  break;
default:
  n 與 case 1case 2 不同時執行的代碼
}

工作原理:首先設置表達式 n(通常是一個變數)。隨後表達式的值會與結構中的每個 case 的值做比較。如果存在匹配,則與該 case 關聯的代碼塊會被執行。請使用 break 來阻止代碼自動地向下一個 case 運行。

實例

顯示今日的周名稱。請註意 Sunday=0, Monday=1, Tuesday=2, 等等:

var day=new Date().getDay();
switch (day)
{
case 0:
  x="Today it's Sunday";
  break;
case 1:
  x="Today it's Monday";
  break;
case 2:
  x="Today it's Tuesday";
  break;
case 3:
  x="Today it's Wednesday";
  break;
case 4:
  x="Today it's Thursday";
  break;
case 5:
  x="Today it's Friday";
  break;
case 6:
  x="Today it's Saturday";
  break;
}

 

三,JavaScript For 迴圈

JavaScript 迴圈

如果您希望一遍又一遍地運行相同的代碼,並且每次的值都不同,那麼使用迴圈是很方便的。

迴圈可以將代碼塊執行指定的次數。 

不同類型的迴圈

JavaScript 支持不同類型的迴圈:

  • for - 迴圈代碼塊一定的次數
  • for/in - 迴圈遍歷對象的屬性
  • while - 當指定的條件為 true 時迴圈指定的代碼塊
  • do/while - 同樣當指定的條件為 true 時迴圈指定的代碼塊

For 迴圈

for 迴圈是您在希望創建迴圈時常會用到的工具。

下麵是 for 迴圈的語法:

for (語句 1; 語句 2; 語句 3)
  {
  被執行的代碼塊
  }

語句 1 在迴圈(代碼塊)開始前執行

語句 2 定義運行迴圈(代碼塊)的條件

語句 3 在迴圈(代碼塊)已被執行之後執行

實例

<!DOCTYPE html>
<html>
<body>

<p>點擊下麵的按鈕,將代碼塊迴圈五次:</p>
<button onclick="myFunction()">點擊這裡</button>
<p id="demo"></p>

<script>
function myFunction()
{
var x="";
for (var i=0;i<5;i++)
  {
  x=x + "The number is " + i + "<br>";
  }
document.getElementById("demo").innerHTML=x;
}
</script>

</body>
</html>

語句 1

通常我們會使用語句 1 初始化迴圈中所用的變數 (var i=0)。

語句 1 是可選的,也就是說不使用語句 1 也可以。

您可以在語句 1 中初始化任意(或者多個)值:

實例:

<!DOCTYPE html>
<html>
<body>

<script>
cars=["BMW","Volvo","Saab","Ford"];
for (var i=0,l=cars.length; i<l; i++)
{
document.write(cars[i] + "<br>");
}
</script>

</body>
</html>

同時您還可以省略語句 1(比如在迴圈開始前已經設置了值時):

實例:

<!DOCTYPE html>
<html>
<body>

<script>
cars=["BMW","Volvo","Saab","Ford"];
var i=2,len=cars.length;
for (; i<len; i++)
{
document.write(cars[i] + "<br>");
}
</script>

</body>
</html>

 

語句 2

通常語句 2 用於評估初始變數的條件。

語句 2 同樣是可選的。

如果語句 2 返回 true,則迴圈再次開始,如果返回 false,則迴圈將結束。

提示:如果您省略了語句 2,那麼必須在迴圈內提供 break。否則迴圈就無法停下來。這樣有可能令瀏覽器崩潰。

 

語句 3

通常語句 3 會增加初始變數的值。

語句 3 也是可選的。

語句 3 有多種用法。增量可以是負數 (i--),或者更大 (i=i+15)。

語句 3 也可以省略(比如當迴圈內部有相應的代碼時):

實例:

<!DOCTYPE html>
<html>
<body>

<script>
cars=["BMW","Volvo","Saab","Ford"];
var i=0,len=cars.length;
for (; i<len; )
{
document.write(cars[i] + "<br>");
i++;
}
</script>

</body>
</html>

 

四,JavaScript for...in 語句

JavaScript for...in 語句

for...in 語句用於對數組或者對象的屬性進行迴圈操作,遍曆數組或者對象的屬性(對數組或者對象的屬性進行迴圈操作)。

for ... in 迴圈中的代碼每執行一次,就會對數組的元素或者對象的屬性進行一次操作。

語法:

for (變數 in 對象)
{
    在此執行代碼
}

“變數”用來指定變數,指定的變數可以是數組元素,也可以是對象的屬性。

實例,使用 for ... in 迴圈遍曆數組:

<html>
<body>
<script type="text/javascript">
var x
var mycars = new Array()
mycars[0] = "寶馬"
mycars[1] = "賓士"
mycars[2] = "賓利"

for (x in mycars)
{
document.write(mycars[x] + "<br />")
}
</script>
</body>
</html>

 

效果如下:

 

五,JavaScript While 迴圈

while 迴圈

While 迴圈會在指定條件為真時迴圈執行代碼塊。

只要指定條件為 true,迴圈就可以一直執行代碼。

語法

while (條件)
  {
  需要執行的代碼
  }

 

實例

本例中的迴圈將繼續運行,只要變數 i 小於 5:

<!DOCTYPE html>
<html>
<body>

<p>點擊下麵的按鈕,只要 i 小於 5 就一直迴圈代碼塊。</p>
<button onclick="myFunction()">點擊這裡</button>
<p id="demo"></p>

<script>
function myFunction()
{
var x="",i=0;
while (i<5)
  {
  x=x + "The number is " + i + "<br>";
  i++;
  }
document.getElementById("demo").innerHTML=x;
}
</script>

</body>
</html>

提示:如果您忘記增加條件中所用變數的值,該迴圈永遠不會結束。該可能導致瀏覽器崩潰。

 

do/while 迴圈

do/while 迴圈是 while 迴圈的變體。該迴圈會執行一次代碼塊,在檢查條件是否為真之前,然後如果條件為真的話,就會重覆這個迴圈。

語法

do
  {
  需要執行的代碼
  }
while (條件);

 

實例

下麵的例子使用 do/while 迴圈。該迴圈至少會執行一次,即使條件是 false,隱藏代碼塊會在條件被測試前執行:

<!DOCTYPE html>
<html>
<body>

<p>點擊下麵的按鈕,只要 i 小於 5 就一直迴圈代碼塊。</p>
<button onclick="myFunction()">點擊這裡</button>
<p id="demo"></p>

<script>
function myFunction()
{
var x="",i=0;
do
  {
  x=x + "The number is " + i + "<br>";
  i++;
  }
while (i<5)  
document.getElementById("demo").innerHTML=x;
}
</script>

</body>
</html>

別忘記增加條件中所用變數的值,否則迴圈永遠不會結束!

 

比較 for 和 while

如果您已經閱讀了前面那一章關於 for 迴圈的內容,您會發現 while 迴圈與 for 迴圈很像。

for 語句實例

本例中的迴圈使用 for 迴圈來顯示 cars 數組中的所有值: 

<!DOCTYPE html>
<html>
<body>

<script>
cars=["BMW","Volvo","Saab","Ford"];
var i=0;
for (;cars[i];)
{
document.write(cars[i] + "<br>");
i++;
}
</script>

</body>
</html>

while 語句實例

本例中的迴圈使用使用 while 迴圈來顯示 cars 數組中的所有值:

<!DOCTYPE html>
<html>
<body>

<script>
cars=["BMW","Volvo","Saab","Ford"];
var i=0;
while (cars[i])
{
document.write(cars[i] + "<br>");
i++;
}
</script>

</body>
</html>

 

 

六,JavaScript Break 和 Continue 語句

break 語句用於跳出迴圈。

continue 用於跳過迴圈中的一個迭代。

Break 語句

我們已經在本教程稍早的章節中見到過 break 語句。它用於跳出 switch() 語句。

break 語句可用於跳出迴圈。

break 語句跳出迴圈後,會繼續執行該迴圈之後的代碼(如果有的話):

實例

<!DOCTYPE html>
<html>
<body>

<p>點擊按鈕,測試帶有 break 語句的迴圈。</p>
<button onclick="myFunction()">點擊這裡</button>
<p id="demo"></p>

<script>
function myFunction()
{
var x="",i=0;
for (i=0;i<10;i++)
  {
  if (i==3)
    {
    break;
    }
  x=x + "The number is " + i + "<br>";
  }
document.getElementById("demo").innerHTML=x;
}
</script>

</body>
</html>
效果如下:

由於這個 if 語句中只有一行代碼,所以可以省略花括弧:

for (i=0;i<10;i++)
  {
  if (i==3) break;
  x=x + "The number is " + i + "<br>";
  }

 

Continue 語句

continue 語句中斷迴圈中的迭代,如果出現了指定的條件,然後繼續迴圈中的下一個迭代。

該例子跳過了值 3:

實例

<!DOCTYPE html>
<html>
<body>

<p>點擊下麵的按鈕來執行迴圈,該迴圈會跳過 i=3 的步進。</p>
<button onclick="myFunction()">點擊這裡</button>
<p id="demo"></p>

<script>
function myFunction()
{
var x="",i=0;
for (i=0;i<10;i++)
  {
  if (i==3)
    {
    continue;
    }
  x=x + "The number is " + i + "<br>";
  }
document.getElementById("demo").innerHTML=x;
}
</script>

</body>
</html>

 

效果如下:

JavaScript 標簽(可參考博客http://blog.sina.com.cn/s/blog_70a3539f01015yh9.html)

正如您在 switch 語句那一章中看到的,可以對 JavaScript 語句進行標記。

如需標記 JavaScript 語句,請在語句之前加上冒號:

label:
語句

break 和 continue 語句僅僅是能夠跳出代碼塊的語句。

語法

break labelname;

continue labelname;

continue 語句(帶有或不帶標簽引用)只能用在迴圈中。

break 語句(不帶標簽引用),只能用在迴圈或 switch 中。

通過標簽引用,break 語句可用於跳出任何 JavaScript 代碼塊:

實例:

<!DOCTYPE html>
<html>
<body>

<script>
cars=["BMW","Volvo","Saab","Ford"];
list:
{
document.write(cars[0] + "<br>"); 
document.write(cars[1] + "<br>"); 
document.write(cars[2] + "<br>"); 
break list;
document.write(cars[3] + "<br>"); 
document.write(cars[4] + "<br>"); 
document.write(cars[5] + "<br>"); 
}
</script>

</body>
</html>
效果如下:     

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 很久之前寫了一個jquery3D樓盤線上選擇,這麼一個插件,插件很簡單,因為後期項目中沒有實際用到,因此,有些地方不是很完善,後面也懶得再進行修改維護了。最近放到github上面,但是也少有人問津及star。昨天,有個網友問我,這個插件中關於拖拽的一些寫法! ...
  • 對於響應式佈局呢,我相信每個人都有自己不同的見解,有的呢認為響應式佈局就是一種網頁,但是我們真正的響應式佈局是可以隨網頁的大小,從而自己調節的一種網頁,在PC端的時候網頁上的所有的東西都呈一排顯示,或者是分為有兩個側欄,或一個側欄,還有主題內容組成的,在PC端的時候是整體一排顯示的,但是隨著屏幕的縮 ...
  • 概念 響應式佈局,就是響應式設計方案的呈現。具體點就是在不同的設備上,網頁能自動識別屏幕寬度、並根據設備的顯示面積(一般情況下是指的屏幕寬度,當然,也可以是其他的,可以在下麵詳細解釋)顯示出不同的效果。通俗點就是設計一套佈局,在PC端和移動端都可以使用。 如何實現響應式佈局? 通俗的有三種方法 1、 ...
  • 響應式佈局,就是一個網站可以相容多類型終端,但不是需要為每一個終端做一個特定的網頁版本。響應式佈局可以為不同終端的用戶提供更舒適的界面和用戶體驗,目前越來越多的大屏幕移動設備的出現,響應式也隨之成為開發人員廣泛使用的WEB技術。 優點: 面對不同解析度設備靈活性強 能夠快捷解決多設備顯示適應問題 缺 ...
  • 使用vue編寫一個點擊數字計時小游戲,列入你在文本框中輸入3,點擊開始會生成一個3行3列的表格,表格數據為1-9隨機排列,這時候從1開始點擊,按順序點到9,當按正確順序點擊完畢,會提示所用的時間,如果順序沒有按對,會提示游戲結束. 1.首先下載vue源碼,下載地址http://cn.vuejs.or ...
  • 本文以實例形式詳細講述了jQuery動畫特效的實現方法。 1.自製摺疊內容塊 內容塊如下: <div class="module"> <div class="caption"> <span>標題</span> <img src="rollup.gif" alt="rollup" title="rol ...
  • 說到響應式佈局,相信大家都有一定的瞭解,響應式佈局是今年很流行的一個設計理念,隨著移動互聯網的盛行,為解決如今各式各樣的瀏覽器解析度以及不同移動 設備的顯示效果,設計師提出了響應式佈局的設計方案。今天就和大家來講講響應式佈局這件小事,包含什麼是響應式佈局、響應式佈局的優點和缺點以及響應式布 局該怎麼 ...
  • 一、什麼是"非構造函數"的繼承? 比如,現在有一個對象,叫做"中國人"。 還有一個對象,叫做"醫生"。 請問怎樣才能讓"醫生"去繼承"中國人",也就是說,我怎樣才能生成一個"中國醫生"的對象? 這裡要註意,這兩個對象都是普通對象,不是構造函數,無法使用構造函數方法實現"繼承"。 object()方法 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...