Day03---选择语句

一、 语句和程序结构

1.1 语句

ECMA-262 规定了一组语句(也称为流控制语句)。从本质上看,语句定义了 ECMAScript 中的主要
语法,语句通常使用一或多个关键字来完成给定任务。语句可以很简单,例如通知函数退出;也可以比
较复杂,例如指定重复执行某个命令的次数。

我们写的任何一行代码其实都是一条语句。一个程序总是由很多的语句来组成

1.2 程序流程控制

结构化程序有三种结构。顺序结构、选择结构、循环结构

  • 顺序结构:顺序结构是一种线性、有序的结构,它依次执行各语句模块。
  • 选择结构:选择结构是根据条件成立与否选择程序执行的通路。需要条件语句。
  • 循环结构:循环结构是重复执行一个或几个模块,直到满足某一条件为止。 需要循环语句。

二、 if 条件语句

2.1 if 结构

语法:

if(condition){
  //语句1
}
//if结构外面的代码
说明:
1、condition(条件),可以是任意表达式,表达式的值不要求必须是布尔值。
2、如果condition不是布尔值,则使用转型函数Boolean()转换成布尔值。
3、如果对condition求值后的结果是true则执行 "语句1"。如果是false,则不执行 "语句1",开始执行if结构外面的代码。

2.2 if...else 结构

语法:

if(condition){
  //语句1
}else{
  //语句2
}
//if结构外面的代码
说明:
1、condition(条件),可以是任意表达式,表达式的值不要求必须是布尔值。
2、如果condition不是布尔值,则使用转型函数Boolean()转换成布尔值。
3、如果对condition求值后的结果是true则执行 "语句1"。如果是false,则执行 "语句2"。
注意:从上面的说明可以看出,"语句1"和"语句2"永远不会同时执行,一定会执行其中的一句。

2.3 if...else if...elsif... 结构

语法:

if(condition1){
  //语句1
}else if(condition2){
  //语句2
}...else if(condition3){
  //语句n
}
说明:
1、首先判断condition1,如果是true,则执行"语句1"。
2、如果condition1是false,则判断condition2,如果是true,则执行"语句2"。以此类推。
3、如果中间碰到任何一个condition是true,则执行相应的语句,执行完毕之后,则整个if结构的语句也结束了。不会再判断后面的condition。
4、如果所有的condition都是fasle,则一个"语句"都不执行,整个if结构语句结束。
注意:这个结构中,有可能一个语句都不执行。

2.4 if...else if...else ...else结构

语法:

if(condition1){
  //语句1
}else if(condition2){
  //语句2
}...else if(condition3){
  //语句n
}else{
  //else语句
}
说明:
1、首先判断condition1,如果是true,则执行"语句1"。
2、如果condition1是false,则判断condition2,如果是true,则执行"语句2"。以此类推。
3、如果中间碰到任何一个condition是true,则执行相应的语句,执行完毕之后,则整个if结构的语句也结束了。不会再判断后面的condition。
4、如果所有的condition都是fasle,则会自动执行else中的语句。
注意:该结构中,一定会有一个而且仅有一个语句执行。

三、 switch条件语句

switch语句也是与if语句一样使用广泛的选择语句。与c、java的语法一样,但是使用起来比他们更灵活。

语法:

switch (expression) {
  case value1: 
    //语句1
  break;
  case value2: 
    //语句2
  break;
  case value3: 
    //语句3
  break;
  case value4: 
    //语句4
  break;
  default: 
    //fefault语句
}

说明:

  1. switch语句的含义是如果某个case的value与express相等,则执行这个case对应的语句,碰到break语句就结束switch语句。
  2. 如果没有一个case都不匹配,则自动执行default语句。
  3. 可以没有default,如果没有则当所有的case都不匹配的情况下,自动结束switch,一条语句都不执行。
  4. 对JavaScript来说,expression可以是任何类型的(基本类型和引用类型),而case后面的value可以是变量、常量、对象、表达式。 (其他语言如:java和c则只能是常量,而且expression表达式的类型也有限制)
  5. 注意:在执行的过程中,如果匹配了某个case,则从这个case的语句开始执行,直到碰到break或者switch的结尾才会结束。

案例1:

var a = 2;
switch (a) {
  case 1:
    alert("1");
    break;
  case 2: //a的值是2,所以与这个case匹配
    alert("2");  // 执行这个段代码
    break; //碰到break,switch语句结束
  case 3:
    alert("3");
    break;
  case 4:
    alert("4");
    break;
  default:
    alert("default")
    break;
}

案例2:

var a = 10;
switch (a) {
  case 1:
    alert("1");
    break;
  case 2: 
    alert("2");  
    break; 
  case 3:
    alert("3");
    break;
  case 4:
    alert("4");
    break;
  default: //a 为10,所以与所有的case都不匹配
    alert("default"); //执行default中的语句
    break;
}

案例3:

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

推荐阅读更多精彩内容