分支语句与循环语句,详细讲解

一、分支语句(选择语句)

1.if-else 语句:

~ if-else的故事很长,待我慢慢道来哈~

1)基本语法结构:

> if(表达式)
>         语句1> else
>        语句2

其中,表达式起到判断作用,若表达式为真,则执行语句1;若表达式为假,则执行语句2;(C语言中 0表示假,非0表示真)

2)多分支结构:

> if(表达式1>        语句1;
> else if(表达式2>        语句2;
> ...       
> else if(表达式n-1)
>        语句n-1;
> else  
>        语句n;
  • 以上两种语法十分简单,一个判断,一个语句,但大多数情况下,我们并不是一对一的,而是一对多,一个判断,要执行很多语句,那该怎么办呢?嘻嘻,莫慌,我来告诉你!

    引入代码块,也就是 ‘{}’ 大括号咯,将多条语句框起来,便可以实现一判断,多语句执行咯。合理的利用 ‘{}’ 也可以使我们的代码颜值加分哦!

  • 为了梦想,加大难度!!!

3)嵌套if语句:

if(表达式1)
{
      if(表达式2)
        语句1;
      else 
        语句2;
}
else//这里面的else跟那个if匹配呢?
{
      if(表达式3)
         语句3;
      else
         语句4;
}

注: else与if的匹配准则:else与最靠近它的并且没有与别的else匹配过的if相匹配。
嵌套的语法很容易出现错误,所以一定要注意代码习惯的养成,让自己的代码逻辑清晰。好吧,if-else暂时结束喽,so让我们一起去学习分支同伴Switch吧!

2.switch语句:

Switch语句也是分支语句,常常用于多分支的情况。话不多说,先看格式。

1)基本语法结构

switch(表达式){
    case 常量表达式1: 语句1; break;
    case 常量表达式2: 语句2; break;
                  ...
    case 常量表达式n-1: 语句n-1; break;
    case 常量表达式n: 语句n; break;
    default:           语句n+1; break;
}

如上面基本语法结构表示,首先求解表达式,如果所得的结果与下列常量表达式结果相同,则执行该常量表达式后面的语句;但若求解表达式与下面的所有常量表达式都不想同,那么便跳转并执行default后面的语句。最后通过break来跳出Switch语句。嘻嘻,想必大家一看就会了吧~

好,接下来让我们来变形一下下吧。

2)Switch变形:

switch(表达式){
    case 常量表达式1: 
    case 常量表达式2: 
        语句 1; 
        break;
    case 常量表达式3: 
    case 常量表达式4:
        语句 2;
        break;
    default: 
        语句 3;
        break;         
}

如果我们想要表达式的多个结果都可以输出同一个语句,上面表达式便可以实现。比如 我想说age = 15,16,17,都表示未成年便可以通过这个变形实现。
Switch语句的分支效果是通过break来实现的,所以要合理运用break哈。

补充下:Switch表达式中只能是整形和枚举类型哦

二、循环语句:

1、while语句:

1)基本语法:

while (表达式)

{

循环语句;

}

举个栗子吧

  • 来求个1~n项的和吧
#include<stdio.h>
int main()
{
   int i = 1;
   int sum = 0;
   int n = 0;
   scanf("%d",&n);
   while(i<=n)
  {
   sum += i ;
   i++;
  }
  printf("%d",sum);
 
   return 0;
}

~~while的英语意思是当…时。在c中,也可以这样理解,当表达式正确时,则执行下方语句。

2)循环中的break、continue语句:

  • break用法:
#include<stdio.h>
int main()
{
   int i = 1;
   int sum = 0;
   int n = 0;
   scanf("%d",&n);
   while(i<=n)
  {
   sum += i ;
   break;//位置1
   i++;
  }
  printf("%d",sum);
 
   return 0;
}

这里是引用

若在位置1处插入一个break,发现运行结果为1;不难推理出while只循环了一次,或者说是只执行了break前面的语句。所以break的作用便是跳出一层循环。

  • continue的用法:
#include<stdio.h>
int main()
{
   int i = 1;
   int sum = 0;
   int n = 0;
   scanf("%d",&n);
   while(i<=n)
  {
   sum += i ;
   continue;//位置1
   i++;
  }
  printf("%d",sum);
 
   return 0;
}

若把break换成continue会发生什么呢?我们运行看下;

这里是引用

这里我们就发现只能输入一个5,无法输出结果。为什么呢,那是因为 continue执行后,后方的语句不再执行,直接跳到while循环的判断语句处。 而栗子中,i永远小于n,则该循环是死循环,无法跳出。

好吧,while语句就浅浅讲到这里吧。

2、for语句:

1)基本语法:

for(语句1;表达式;语句2)

{

循环体语句;

}

我们就用for语句来完成上面那个栗子吧

#include<stdio.h>
int main()
{
   int i = 0;
   int sum = 0;
   int n = 0;
   
   scanf("%d",&n);
   
   for(i=1;i<=n;i++)
  {
   sum += i ;
  }
  printf("%d",sum);
 
   return 0;
}

这样就可以表达上述的while语句的栗子了,大家看看,是不是更加清楚了。for的基本语法相当于表达式部分就相当于于while里的表达式,其判断真假的作用那个;i++也相当于while中最后一个执行的语句,所以for的执行方式,就很明显了吧。(注意for后括号中以 ‘ ;’ 连接。)

当然break,continue在for语句也可以使用,这里就不过多赘述

3、do-while语句:

1)基本用法:

do{

循环体

}while(表达式);

在do-while中,就是先执行后判断是否循环,与while相反。同样我们也用do-while来完成上面栗子。

#include<stdio.h>
int main()
{
   int i = 1;
   int sum = 0;
   int n = 0;
   
   scanf("%d",&n);
   
   do {
   sum += i ;
   i++;
   }while(i<=n);
  printf("%d",sum);
 
   return 0;
}

基本与while相同,我也就不多说了。

4、goto语句:

~goto 语句可是很有意思,如它英文,go to 真是来去自由啊,简直是C语言中的飞雷神!一起来了解它的用法吧。

//飞雷神,先标记;
flag://(标记)
//发动飞雷神,也就是运行goto;
goto flag;
//这样执行又回到了flag处,实现循环。

当然,我 “飞雷神” 不止如此,在多层循环中,有意想不到的效果,比如:

for(...)
     for(...)
     {
         for(...)
         {
         if(disaster)
            goto error;
         }
     }
     ...
error
 if(disaster)
 //处理错误情况。  

如果在嵌套很深的循环中,break只能一层,一层的往外,而goto,则是一步到位,相当方便。

迟到忆点点的CSDN,萌新初上道,望佬多指教

  • 14
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知更鸟呆呆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值