JavaScript基础04-流程控制

在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。

流程控制语句分类

  1. 顺序结构
  2. 分支结构
  3. 循环结构

顺序结构

从上到下执行的代码就是顺序结构
程序默认就是由上到下顺序执行的

分支结构

1. if语句

使用语法格式

if (/* 条件表达式 */) {
  // 执行语句
}

if (/* 条件表达式 */){
  // 成立执行语句
} else {
  // 否则执行语句
}

if (/* 条件1 */){
  // 成立执行语句
} else if (/* 条件2 */){
  // 成立执行语句
} else if (/* 条件3 */){
  // 成立执行语句
} else {
  // 最后默认执行语句
}

2. switch语句

语法格式如下,

switch (expression) {
  case 常量1:
    语句;
    break;
  case 常量2:
    语句;
    break;
  case 常量3:
    语句;
    break;
  …
  case 常量n:
    语句;
    break;
  default:
    语句;
    break;
}

break可以省略,如果省略,代码会继续执行下一个case
switch 语句在比较值时使用的是全等操作符, 因此不会发生类型转换(例如,字符串'10' 不等于数值 10)

switch的执行流程:

  1. 首先,计算出表达式的值,和 case 依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到 break 就会结束。
  2. 然后,如果所有的 case 都和表达式的值不匹配,就会执行 default 语句体部分。
  3. switch 语句的结束条件
    1)遇到 break 就结束,而不是遇到 default 就结束。(因为 break 在此处的作用就是退出 switch 语句)
    2)执行到程序的末尾就结束。
    我们需要注意,break可以省略,如果breakswitch省略,则代码会继续往下执行,直到结束。如
    switch

我们需要明白的是,当所有条件都不成立时,才会去执行default。

 var num = 2;

        //switch判断语句
        switch (num) {
            default:
                console.log('你输入的数据有误');
                break;
            case 1:
                console.log('星期一');
                break;
            case 2:
                console.log('星期二');
            case 3:
                console.log('星期三');
            case 4:
                console.log('星期四');
            case 5:
                console.log('星期五');
            case 6:
                console.log('星期六');
                break;
            case 7:
                console.log('星期日');
                break;
        }

该段代码与上述运行结果是一致的,和default的位置无关。

循环结构

在javascript中,循环语句有三种,while、do..while、for循环。

while循环

语法格式如下,

// 当循环条件为true时,执行循环体,
// 当循环条件为false时,结束循环。
while (循环条件) {
  //循环体
}

代码执行流程:

  1. while语句在执行时,先对条件表达式进行求值判断:如果值为true,则执行循环体;
  2. 循环体执行完毕以后,继续对表达式进行判断;如果为true,则继续执行循环体,以此类推;
  3. 如果值为false,则终止循环

do...while循环

语法格式如下,

do {
  // 循环体;
} while (循环条件);

代码执行流程:

  1. do...while语句在执行时,会先执行循环体;
  2. 循环体执行完毕以后,在对while后的条件表达式进行判断:如果结果为true,则继续执行循环体,执行完毕继续判断以此类推;
  3. 如果结果为false,则终止循环
    while 循环和 do...while 循环的区别
    while 是先判断后执行,而 do...while 是先执行后判断。也就是说,do...while 可以保证循环体至少执行一次,而 while 如果条件不满足则一次都不能执行。

for循环

while和do...while一般用来解决无法确认次数的循环。for循环一般在循环次数确定的时候比较方便
语法格式如下,

// for循环的表达式之间用的是;号分隔的,千万不要写成,
for (初始化表达式1; 判断表达式2; 自增表达式3) {
  // 循环体4
}

代码执行顺序,
执行顺序:1243 ---- 243 -----243(直到循环条件变成false)

  1. 初始化表达式
  2. 判断表达式
  3. 自增表达式
  4. 循环体

break 和 continue

break

  1. break 可以用来退出 switch 语句或退出整个循环语句( for 循环、while 循环。)。
  2. break 会立即终止离它最近的那个循环语句。跳出循环,执行循环后的语句。

continue

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