# JavaScript流程控制语句

## 一、JavaScript If...Else 语句

### 条件语句

if 语句 - 只有当指定条件为 true 时，使用该语句来执行代码
if...else 语句 - 当条件为 true 时执行代码，当条件为 false 时执行其他代码
if...else if....else 语句 - 使用该语句来选择多个代码块之一来执行
switch 语句 - 使用该语句来选择多个代码块之一来执行

### 1.1、If 语句

``````if (条件){
只有当条件为 true 时执行的代码
}``````

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

x 的结果是：

``Good day``

### 1.2、If...else 语句

``````if (条件)
{
当条件为 true 时执行的代码
}
else
{
当条件不为 true 时执行的代码
}``````

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

x 的结果是：

``Good day``

### 1.3、If...else if...else 语句

``````if (条件 1)
{
当条件 1 为 true 时执行的代码
}
else if (条件 2)
{
当条件 2 为 true 时执行的代码
}
else
{
当条件 1 和 条件 2 都不为 true 时执行的代码
}``````

``````if (time<10)
{
x="Good morning";
}
else if (time<20)
{
x="Good day";
}
else
{
x="Good evening";
}``````

x 的结果是：

``Good day``

## 二、JavaScript Switch 语句

switch 语句用于基于不同的条件来执行不同的动作。

### 2.1、JavaScript Switch 语句

``````switch(n)
{
case 1:
执行代码块 1
break;
case 2:
执行代码块 2
break;
default:
n 与 case 1 和 case 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;
}``````

x 的结果：

``Today it's Monday``

### 2.2、default 关键词

``````var day=new Date().getDay();
switch (day)
{
case 6:
x="Today it's Saturday";
break;
case 0:
x="Today it's Sunday";
break;
default:
x="Looking forward to the Weekend";
}``````

x 的结果：

``Looking forward to the Weekend``

## 三、JavaScript For 循环

### 3.1、JavaScript 循环

``````document.write(cars + "<br>");
document.write(cars + "<br>");
document.write(cars + "<br>");
document.write(cars + "<br>");
document.write(cars + "<br>");
document.write(cars + "<br>");``````

``````for (var i=0;i<cars.length;i++)
{
document.write(cars[i] + "<br>");
}``````

### 3.2、不同类型的循环

JavaScript 支持不同类型的循环：

• for - 循环代码块一定的次数
• for/in - 循环遍历对象的属性
• while - 当指定的条件为 true 时循环指定的代码块
• do/while - 同样当指定的条件为 true 时循环指定的代码块

### 3.3、For 循环

for 循环是您在希望创建循环时常会用到的工具。

``````for (语句 1; 语句 2; 语句 3)
{
被执行的代码块
}``````

• 语句 1 在循环（代码块）开始前执行
• 语句 2 定义运行循环（代码块）的条件
• 语句 3 在循环（代码块）已被执行之后执行

``````for (var i=0; i<5; i++)
{
x=x + "The number is " + i + "<br>";
}``````

• Statement 1 在循环开始之前设置变量 (var i=0)。
• Statement 2 定义循环运行的条件（i 必须小于 5）。
• Statement 3 在每次代码块已被执行后增加一个值 (i++)。

``````for (var i=0,len=cars.length; i<len; i++)
{
document.write(cars[i] + "<br>");
}``````

``````var i=2,len=cars.length;
for (; i<len; i++)
{
document.write(cars[i] + "<br>");
}``````

``````var i=0,len=cars.length;
for (; i<len; )
{
document.write(cars[i] + "<br>");
i++;
}``````

### 3.4、For/In 循环

JavaScript for/in 语句循环遍历对象的属性：

``````var person={fname:"John",lname:"Doe",age:25};

for (x in person)
{
txt=txt + person[x];
}``````

## 四、JavaScript While 循环

### 4.1、while 循环

While 循环会在指定条件为真时循环执行代码块。

``````while (条件)
{
需要执行的代码
}``````

``````while (i<5)
{
x=x + "The number is " + i + "<br>";
i++;
}``````

### 4.2、do/while 循环

do/while 循环是 while 循环的变体。该循环会执行一次代码块，在检查条件是否为真之前，然后如果条件为真的话，就会重复这个循环。

``````do
{
需要执行的代码
}
while (条件);``````

``````do
{
x=x + "The number is " + i + "<br>";
i++;
}
while (i<5);``````

### 4.3、比较 for 和 while

for 语句实例

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

while 语句实例

``````cars=["BMW","Volvo","Saab","Ford"];
var i=0;
while (cars[i])
{
document.write(cars[i] + "<br>");
i++;
}``````
{"ft_lang_label":"__label__zh","ft_lang_prob":0.7776026,"math_prob":0.9155753,"size":4562,"snap":"2020-10-2020-16","text_gpt3_token_len":2582,"char_repetition_ratio":0.13690215,"word_repetition_ratio":0.1263318,"special_character_ratio":0.33822885,"punctuation_ratio":0.18039624,"nsfw_num_words":0,"has_unicode_error":false,"math_prob_llama3":0.9666698,"pos_list":[0,1,2],"im_url_duplicate_count":[null,1,null],"WARC_HEADER":"{\"WARC-Type\":\"response\",\"WARC-Date\":\"2020-04-02T16:21:51Z\",\"WARC-Record-ID\":\"<urn:uuid:bbd5b904-2c82-4103-88d9-1f8875d14bd7>\",\"Content-Length\":\"25897\",\"Content-Type\":\"application/http; msgtype=response\",\"WARC-Warcinfo-ID\":\"<urn:uuid:826f4fa3-8b09-4e30-a207-3279a3fa2d5c>\",\"WARC-Concurrent-To\":\"<urn:uuid:89bfcf60-64dd-445e-9541-6dde4d2ddf02>\",\"WARC-IP-Address\":\"39.108.116.24\",\"WARC-Target-URI\":\"http://www.yiidian.com/javascript/javascript-procedure.html\",\"WARC-Payload-Digest\":\"sha1:ZOJ7TDBSTZADJVBUWHEFRNSM2LE7GSBV\",\"WARC-Block-Digest\":\"sha1:6RDMOCWGODMRGBWRJQCZKBVIRVDX5E7W\",\"WARC-Identified-Payload-Type\":\"text/html\",\"warc_filename\":\"/cc_download/warc_2020/CC-MAIN-2020-16/CC-MAIN-2020-16_segments_1585370506988.10_warc_CC-MAIN-20200402143006-20200402173006-00221.warc.gz\"}"}