2019-03-11 JavaScript学习笔记之流程控制

参考资料:《JavaScript从入门到精通》、《PHP、MySQL与JavaScript学习手册》

赋值语句

赋值语句是JavaScript程序中最常见的语句。赋值语句的语法如下:

变量名 = 表达式;

当使用关键字var声明变量时,可以同时用赋值语句对声明的变量进行赋值。

条件判断语句:if语句、switch语句

条件语句会改变程序的运行流程,它们会对某些事情提出问题,并用从不同路径得到的答案进行回应。除了条件运算符外,有两种非循环条件语句:if语句和switch语句。

if语句

if条件判断语句是最基本、最常用的流程控制语句,可以根据条件表达式的值做相应的处理。

if语句的格式如下:

if(expression)
{
    statement 1
}
else
{
    statement 2
}

参数说明:

  • expression:用于指定条件表达式,可以使用逻辑运算符。
  • statement 1:当expression的值为true时,执行该语句序列。
  • statement 2:当expression的值为false时,执行该语句序列。

注意:对于单行语句可以省略花括号。else子句可以省略。

if语句的嵌套

if语句可以嵌套使用。

在if语句中嵌套if语句时,外层if语句的大括号可以省略,但是最好是使用大括号{}来确定相互之间的层次关系。否则,如果大括号使用位置不同,可能导致代码的含义完全不同。

switch语句

switch语句是典型的多路分支语句,其作用与嵌套的if语句基本相同。

当一个变量或是一个表达式的结果可能产生多个值,对于每个值要完成不同功能时,switch语句十分有用。

switch语句的语法格式如下:

switch(expression)
{
    case judgement 1:
        statement 1;
        break;
    case judgement 2:
        statement 2;
        break;
    ……
    case judgement n:
        statement n;
        break;
    default:
        statement n+1;
        break;
}

参数说明:

  • expression:任意的表达式或变量。
  • judgement:任意的常数表达式。当expression的值与某个judgement的值相等时,就执行此case之后的statement语句。如果都不相等,就执行default之后的statement语句。
  • break:用于结束switch语句。

例1 应用switch判断当前是星期几

<script language="javascript">
    var now=new Date();     //获取系统日期
    var day=now.getDay();   //获取星期
    var week;
switch(day)
{
    case 1:
        week="星期一";
        break;
    case 2:
        week="星期二";
        break;
    case 3:
        week="星期三";
        break;
    case 4:
        week="星期四";
        break;
    case 5:
        week="星期五";
        break;
    case 6:
        week="星期六";
        break;
    case 7:
        week="星期日";
        break;
}
document.write("今天是"+week);
</script>

输出:

今天是星期一

循环控制语句:while语句,do-while语句,for循环

while语句

while循环语句也称为前测试循环语句。

while语句的语法格式如下:

while(expression)
{
    statement
}

参数说明:

  • expression:一个包含比较运算符的条件表达式,用来指定循环条件。

  • statement:用来指定循环体,在循环条件的结果为true时,重复执行。

注意:while语句之多一命名为前测试循环,是因为它要先判断此循环的条件是否成立,然后再进行重复执行操作。

例2 通过while循环语句实现在页面中列举出累加和不大于10的所有自然数

<script language="javascript">
    var i=1;                        //由于是计算自然数,所以i的值初始化为1
    var sum=i;
    var result="";
    document.write("累加和不大于10的所有自然数为:<br>");
    while(sum<10)
    {
        sum=sum+i;                  //累加i的值
        document.write(i+"<br>");   //输出符合条件的自然数
        i++;                        //改变循环条件
    }

输出:

累加和不大于10的所有自然数为:
1
2
3
4

do-while语句

do-while循环语句也被称为后测试循环语句。

do-while循环语句的语法格式如下:

do
{
    statement
}
whlie(expression);

参数说明:

  • statement:用来指定循环体,循环开始时首先被执行一次,然后再循环条件的结果为true时重复执行。
  • expression:一个包含比较运算符的条件表达式,用来指定循环条件。

注意:do-while循环语句中的循环体至少要被执行一次。

for循环

for循环语句也称为计次循环语句。

for循环语句的语法格式如下:

for(initialize;test;increament)
{
    statement
}

参数说明:

  • initialize:初始化语句,用来对循环变量进行初始化赋值。
  • test:循环条件,结果为false时退出循环。
  • increament:用来指定循环变量的步幅。
  • statement:用来指定循环体,在循环条件的结果为true时,重复执行。

例3 计算100以内的所有奇数的和

<script language="javascript>
    var sum=0;
    for(i=1;i<=100;i+=2)
    {
        sum=sum+i;                          //计算100以内各奇数的和
    }
document.write("100以内所有奇数的和为"+sum);     //输出计算结果
<script>

输出:

100以内所有奇数的和为2500

跳转语句:continue语句、break语句

continue语句

continue语句用于中止本次循环,并开始下一次循环。

注意:continue语句只能应用在while,for,do-while和switch语句中。当使用continue语句中止本次循环后,如果循环条件的结果为false,则退出循环,否则进行下一次的循环。

例4 通过continue语句计算金额大于等于1000的数据的和

var total=0;
var sum=new Array(1000,1200,100,600,736,1107,1205);
for(i=0;i<sum.length;i++)
{
    if(sum[i]<1000)
        continue;
    total+=sum[i];
}
document.write("累加和为:"+total);

输出:

累加和为:4512

break语句

break语句用于退出包含在最内层的循环或者退出一个switch语句。

例5 使用break语句跳出循环

var sum=0;
for(i=0;i<100;i++)
{
    sum+=i;
    if(sum>10)
        break;          //如果sum大于10就跳出循环
}
document.write("0至"+i+"包括("+i+")之间自然数的累加和为:"+sum);
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,529评论 5 475
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,015评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,409评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,385评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,387评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,466评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,880评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,528评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,727评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,528评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,602评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,302评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,873评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,890评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,132评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,777评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,310评论 2 342

推荐阅读更多精彩内容

  • 作者的序言 朋友们,弃疗系列4出来啦,作者还并没有放弃,感觉自己萌萌哒,233。 语句 js程序其实就是一系列可执...
    zhaolion阅读 1,740评论 0 8
  • 前端07班 王语句JavaScript程序的执行单位为行(line),也就是一行一行地执行。一般情况下,每一行就是...
    ea203453e188阅读 878评论 0 4
  • 语句 JavaScript程序的执行单位为行(line),也就是一行一行地执行。一般情况下,每一行就是一个语句。 ...
    米塔塔阅读 448评论 1 10
  • 控制流 Swift提供了各种控制流程语句。这些包括while循环多次执行任务; if,guard以及switch基...
    Fuuqiu阅读 363评论 0 0
  • 摘要:1.语句2.变量2.1变量提升3.标识符4.注释5.区块6.条件语句6.1 if 结构6.2 if…else...
    徐国军_plus阅读 359评论 0 5