控制语句中的if和switch

举报
@小红花 发表于 2022/02/23 10:43:54 2022/02/23
【摘要】 控制语句的出现可以让我们的程序具有逻辑性/条理性,可以使用控制语句来实现一个“业务”了。 控制语句包括三类选择语句循环语句转向语句 选择语句也可以叫做分支语句if语句switch语句 循环语句:主要循环反复的去执行某段特定的代码块for循环while循环do  while  循环 转向语句breakcontinuereturn(这个目前先不需要学习,后面讲方法的是会使用)  if语句是分支语...

控制语句的出现可以让我们的程序具有逻辑性/条理性,可以使用控制语句来实现一个“业务”了。

 

  • 控制语句包括三类
    • 选择语句
    • 循环语句
    • 转向语句

 

  • 选择语句也可以叫做分支语句
    • if语句
    • switch语句

 

  • 循环语句:主要循环反复的去执行某段特定的代码块
    • for循环
    • while循环
    • do  while  循环

 

  • 转向语句
    • break
    • continue
    • return(这个目前先不需要学习,后面讲方法的是会使用)

 

 

if语句是分支语句,也可以叫做条件语句。

if语句的语法格式:

 

第一种写法:

if(布尔表达式){

    java语句;

}

这里的一个大括号{}叫做一个分支。

如果布尔表达式的结果true,则执行大括号中的程序,否则大括号中代码不执行。

 

第二种写法:

if(布尔表达式){ //分支1

   java语句;

}else{  //分支2

   java语句;

}

如果布尔表达式的结果是true,则执行分支1,分支2不执行,如果布尔表达式的结果是false,分支1不执行,执行分支2.

以上的这个语句可以保证一定会有一个分支执行。

 

第三种写法:

if(布尔表达式1){    //分支1

    java语句;

}else if(布尔表达式2){    //分支2

   java语句;

}else if(布尔表达式3){     //分支3

   java语句;

}else if(布尔表达式4){     //分支4

   java语句;

}

先判断布尔表达式1,如果布尔表达式1位位true,则执行分支1,然后if语句结束了。

当布尔表达式1结果是false,那么会继续判断布尔表达式2的结果,如果布尔表达式2的结果是true,则执行分支2,然后整个if就结束了。

从上往下一次判断,主要看第一个true发生在哪个分支上。

第一个true对应的分支执行,只要一个分支执行,整个if结束。

 

第四种写法:

if(布尔表达式1){    //分支1

    java语句;

}else if(布尔表达式2){    //分支2

   java语句;

}else if(布尔表达式3){     //分支3

   java语句;

}else if(布尔表达式4){     //分支4

   java语句;

}else{      //以上条件没有一个成立的,这个else就执行了

}

 

  • 对if的总结
    • 1.对于if语句来说,在任何情况下只能有一个分支执行,不可能存在两个或者更多个分支执行。if语句中只要有一个分支执行了,整个if语句就结束了。(对于一个完整的if语句来说的)
    • 2.以上四种语法机制中,凡是带有else分支的,一定开业保证会有一个分支执行,以上4种当中,第一种和第三种没有else分支,这样的语句可能会导致最后一个分支也不执行。第二种和第四种肯定会有一个分支执行。
    • 3.当分支当中java语句只有一条,那么大括号可以省略,但是为了可读性,最好不要省略,(有的程序员在编写代码的时候,可能回故意将大括号省略,你能看懂就行)。
    • 4.控制语句和控制语句之间是可以嵌套的,但是嵌套的时候大家孔一个语句一个语句进行分析,不要冗杂在一起分析。
    • 窍门:分析外面if语句的时候,里面的这个if语句可以看做是普通的一堆java代码。

 

switch语句也是选择语句,也可以叫做分支语句。

 

switch语句的语法格式:

switch(数值){

case 数值1:

java语句;

break

case 数值2:

java语句:

break;

case 数值3:

java语句;

break;

default;

java语句;

}

 

以上是一个完整的switch语句:

其中:break:不是必须的,default分支也不是必须的。

 

switch语句支持的数值有哪些?

支持intString类型。

但一定要注意JDK的版本,JDK8之前不支持String类型,只支持int

JDK8之后,switch语句开始支持字符串String类型。

switch语句中的数值与数值1,数值2比较的时候会使用==进行比较。

switch语句本质上只支持intString,但是byteshortchar也可以使用在switch语句中,因为byteshortchar可以进行自动类型转化成int

 

switch语句的执行原理:

拿数值与数值1进行比较,如果相同,则执行该分支中的java语句,

然后遇到break语句,switch语句就结束了。

如果数值与数值1不相等,会继续拿数值与数值2进行比较,如果相同,则执行该分支中的java语句,switch语句就结束了。

注意:如果分支执行了,但是分支最后没有break,此时会发生case穿透现象。

所有的case都没有匹配成功,那么最后的default分支会执行。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。