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

一,JavaScript If...Else 語句

條件語句

一般在寫代碼時,您老是須要爲不一樣的決定來執行不一樣的動做。您能夠在代碼中使用條件語句來完成該任務。javascript

在 JavaScript 中,咱們可以使用如下條件語句:html

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

If 語句

只有當指定條件爲 true 時,該語句纔會執行代碼。java

語法

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

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

實例

當時間小於 20:00 時,生成一個「Good day」問候:瀏覽器

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

If...else 語句

<html>
<body>

<script type="text/javascript">
var d = new Date()
var time = d.getHours()

if (time < 10) 
{
document.write("<b>早安</b>")
}
else
{
document.write("<b>祝您愉快</b>")
}
</script>

<p>本例演示 If...Else 語句。</p>

<p>若是瀏覽器時間小於 10,那麼會向您問「早安」,不然會向您問候「祝您愉快」。</p>

</body>
</html>

If...else if....else 語句

<html>
<body>

<script type="text/javascript">
var d = new Date()
var time = d.getHours()
if (time<10)
{
document.write("<b>Good morning</b>")
}
else if (time>=10 && time<16)
{
document.write("<b>Good day</b>")
}
else
{
document.write("<b>Hello World!</b>")
}
</script>

<p>本例演示 if..else if...else 語句。</p>

</body>
</html>

 

二,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, 等等:spa

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 循環

若是您但願一遍又一遍地運行相同的代碼,而且每次的值都不一樣,那麼使用循環是很方便的。code

循環能夠將代碼塊執行指定的次數。 htm

不一樣類型的循環

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>
效果以下: