if…else语句、嵌套if…ELSE语句和case语句实现分支选择的区别

If…else语句是从上到下判断,当条件满足,则执行语句体;

嵌套if…ELSE语句是当外面的if条件成立才判断里面的if;

Case语句是只需访问对应索引号的表项从而到达定位分支的目的;

if else:

if…else if语句和多个if语句的区别还是很大的,if…else if在任何一个环节满足条件的时候就将会终止判断,只处理一个满足条件的情况;而对于多个if语句,将会对每一个判断条件进行判断,自然而然会导致程序的执行效率降低。在多个判断条件的情况下,使用if…else if语句相对于使用多个if语句而言,可以减少程序的判断次数,提高效率。

语法:
if(条件1)
	语句1;
	//如果条件1为真,则执行语句1;
else if(条件2)
	语句2;
	//如果条件1为假且条件2为真,则执行语句2;
else if(条件3)
	语句3;
	//如果条件12都为假且条件3为真,则执行语句3;
	.
	.
	.
else
	语句4;

最终只有一个出口.即当满足条件1时,执行语句1.当不满足条件1时,往下走,判断是否满足条件2,如果还是不满足,则继续往下走,一直走到else语句,说明之前的条件都不满足,最终执行语句4;

嵌套if…ELSE:

我们可以在if语句内嵌套if语句。同样,我们也可以在if语句内嵌套if-else语句,在if-else语句内嵌套if语句,以及在if-else语句内嵌套if-else语句。这种灵活性也很容易让人混淆程序。


语法:
if(条件1)
  {
      if(条件2)
      {
          语句1//如果条件1为真,且条件2为真则执行语句1;
      }
      else
      {
          语句2//如果条件1为真,且条件2为假则执行语句2;
      }
  }
else
    语句3
    //如果条件1为假则执行语句3;

switch case:

在多个判断条件的情况下,不仅可以使用if…else if语句,还可以使用switch case语句。一般情况下,当判断条件较多的情况下,使用switch case语句的效率会高于使用if…else if语句。switch…case与if…else if的根本区别在于,switch…case会生成一个跳转表来指示实际的case分支的地址,而这个跳 转表的索引号与switch变量的值是相等的。从而,switch…case不用像if…else if那样遍历条件分支直到命中条件,而只需访问对应 索引号的表项从而到达定位分支的目的。所以从效率上来说由于if…else if的遍历性,代码执行效率是不高的。

语法:
   switch(表达式){
     case1:
       //表达式的值和 值1匹配上了,需要执行的代码;
       break;
     case2:
       //表达式的值和 值2匹配上了,需要执行的代码;
     break;
     case3:
       //表达式的值和 值3匹配上了,需要执行的代码;
     break;
     default:
       //如果表达式的值和以上的case后面的值都没有匹配上,那么就执行这里的代码。
       break;
   }

从表达式值等于某个case语句后的值开始,它下方的所有语句都会一直运行,直到遇到一个break为止。随后,switch语句将结束,程序从switch结束大括号之后的第一个语句继续执行,并忽略其他case。假如任何一个case语句的值都不等于表达式的值,就运行可选标签default之下的语句。假如表达式的值和任何一个case标签都不匹配,同时没有发现一个default标签,程序会跳过整个switch语句,从它的结束大括号之后的第一个语句继续执行。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值