c语言 分支与循环语句

小白初学C语言,学完分支与循环语句总结如下:

C语言是结构化的程序语言:1.顺序结构  2.选择结构   3.循环结构

这里只总结选择结构中的分支语句和循环语

目录

小白初学C语言,学完分支与循环语句总结如下:


什么是语句

 分支语句(选择结构)

             if语句

             switch语句

循环语句

              while循环

               for循环

                do while循环

  go to语句


                             首先,什么是语句?

C语言中由一个分号隔开的就是一条语句。例如:

printf("hehe");
1+2;
int main()
{
    int a=0;
    ;//空语句
    return;
}

                                  分支语句(选择结构)

如果你好好学习,校招时拿一个好offer,走上人生巅峰;

如果你不好好学习,毕业等于失业,回家卖红薯。

这就是选择。

                                        if语句

                                      语法结构:

1.单分支:          if(表达式)

      语句

int main()
{
   int age=20;
   if(age<18)
   printf("未成年\n");
   return 0;
}

2.双分支 :if(表达式)

语句一;

else

语句二;

int main()
{
int age=20;
if(age<18)
printf("未成年\n");
else
printf("成年\n");
}

3.多分支:if(表达式1)

                    语句1;

else if(表达式)

                     语句2;

else

                      语句3;

 

   

    悬空else                                         

 else有匹配原则:else与离他最近的未匹配的if进行匹配

p1中:因为else与最近的if匹配,所以当a!=1时,直接跳出不打印

p2中:要想打出haha,将第二个if用{}括起来

p3中:代码风格是差的

                                          if形式对比

C语言中:= 表示赋值,== 表示判断 

未来如果涉及到常量与变量的比较,我们可以将常量写在前面,这样可以避免==写成=,出现bug

                                                练习

1.判断奇数(% 求余符号)

 输入n,除以2,如果余数为0,则n为偶数

如果余数为1,则为奇数

2.输出1-100间的奇数

 两种方法:(1)除以2,判断余数是否为1或者不为0,然后while一直循环到100

(2)定义i=1开始循环+2到100

                                switch语句

 switch语法:

switch(整形表达式)
{
语句项;
}

语句项: 是一些case语句
case整型常量表达式:语句

switch语句也是一种分支语句,常常用于多分支的情况

使用场景:

  • switch语句从case进去,break终止出来,所以两者搭配使用
  • switch语句是整形语句,后面必须是整形
  • case后面也必须是整形常量表达式,所以不能用 n

根据需求,如果1-5是工作日,6.7是休息日也可以写成这样

 建议即使是最后一个也加上break 

  • defaut可以处理非法状况,如输入8  9,可以出现在任何位置
  • 可以加if语句,不能加continue 

下面我们看一下这种情况:

  • 因为n=1,所以进入switch语句中的case1,因为没有break所以进入后面的case 2、case3中的case2,再进入case4,遇到break出来,所以最后m=5,n=3

                                                循环语句

  • while
  • for
  • do while

                        while循环的执行流程:

                         while循环

我们已经掌握 if 语句:应为这个语句只会循环一次

但我们实际生活中,同一件事情我们往往需要完成很多次,所以C语言中引入了while语句,可以循环很多次

while语句的语法结构是:

while(表达式)
  循环语句
in main()
{
  while(1)// 1为真,0为假
   printf("hehe");
   return 0;
}
  • 打印出 hehe 的死循环

打印1-10之间的数字

in main()
{
  int i=1;
  while(i<=10)
  {
   printf("%d\n",i);
   i++;
   }
  return 0;
}

    while循环中的break和continue

    break在while循环中的作用:

在循环中只要遇到break就直接终止循环!

int main()
{
  int i=1;
  while(i<=10)
  {
   if(5==i)
     break;
   printf("%d\n",i);
   i++;
  }
  return 0;
}
  • i=1<10 进入while循环中,进入if 判断 i !=5,打印、增加,一直到 i=5进入if 判断成功,遇到break直接终止循环,所以屏幕上打印出1、2、3、4

    continue在while循环中的作用:

  continue终止本次循环,在continue后面的语句不在执行,直接进入下一次while循环中

               

  •  i=1<10进入while循环,进入 if 判断 i!=5,打印、增加,一直到 i=5,进入if 判断成功,遇到continue 跳过后面语句,进入下一循环,直到 i>10,跳出循环。所以屏幕上打印出1、2、3、4、6、7、8、9、10

                                for 循环

语法:

for(表达式1;表达式2,表达式3)//建议写成前闭后开
        循环语句

表达式1为初始部分,表达式2是条件判断部分,表达式3为调整部分

情景:

 因为while无法将初始、判断、调整放在一起,所以用 for 循环

应用:

 for循环的流程图:

 由上图可以清楚的看到 for 循环的执行流程

                 for 循环中的 break 和 continue

for循环中的break和while中的break意义相同

int main()
{
    int i=0;
    for(i=0;i<=10;i++)
    {
        if(5==i)
            break;
        printf("%d",i);
     }
     return 0;
}

屏幕上打印出来时:1、2、3、4

for循环中的continue与while中的意义形同,但在其他方面也有不同

  •  由上图,我个人的理解是,图1是i++在continue的前面,所以可以打出1、2、3、4、6、7、8、9、10;图2是i++在continue后面,所以打印出1、2、3、4后死循环

                for循环控制变量的一些建议

1.不可在for循环体内修改循环变量,防止for循环失去控制

  •  因为在 for 循环内的 if 语句中将 i赋值为5,使得这个代码成为死循环一直打印 hehe 和 haha

2.建议在 for 语句循环控制变量的取值采取 “前闭后开的写法”

  •  因为这样写的话,10有一定的意义,比如:10次循环,10次打印,10个元素

                for循环的变种

1.变种一:

  •  for 循环的初始话、判断、调整都可以省略
  • 如果判断省略,那判断条件恒为正

  判断可以省略,但是不能随便省略

  •  这个循环中因为 j 的判断条件被省略,所以每次循环 j 不会被重新赋值,当 j >10时,最里面的 for 语句不再执行,所以屏幕上只能打印出 10 个 hehe

2.变种二:

int main()
{
    int x, y;
    for(x=0,y=0;x<2 && y<5; ++x; ++y)
    {
     printf("hehe");
    }
    return 0;
}
  • 这个代码中有两个变量 x,y 要同时满足,这个代码才可以被执行,所以这个代码打印两个hehe

一道笔试题:

  •  因为在 for 语句的判断处,k 被赋值为0,0为假,所以不循环
  • 如果 k 被赋值为非0,则为死循环

                             do while 循环

do语句的语法:

do
     循环语句;
   while(表达式);

执行流程图:

 实例:打印1-10的数字

  • 也可以根据条件状语从句理解 
  • 因为 do while语句上来就干,再判断循环,所以至少打印一次

do while语句中的 break 和 continue 和前面的可以同一思路理解

                                go to语句

C语言中提供了可以随意滥用的go to语句和标记跳转的标号

从理论上 go to 语句是没有必要的,实践中没有 go to 语句也可以容易写出代码

但是它可以终止程序在某些深度嵌套的结构的处理过程,例如:一次跳出两层或多层循环

int main()
{
again;
     printf("hello bit");
     goto again;
     return 0;
}
  • again放在哪里,go to就跳到哪里
int main()
{
    printf("hello bit");
    goto again;
    printf("你好");
again;
    printf("hehe");
    return 0;
}
  • 这里打印出来是没有 你好 的
  • goto 语句在代码里是可以跳来跳去的,可能会使代码的执行流程被打乱

goto 语句并不是一无是处:

  • 这里要跳出,用 break 只能跳出一层,而用 goto 可以一次 跳出

下面是使用 goto 语句的一个例子:

一个关机程序

  • 设置一个关机命令 shutdown-t-s60,60s后关机
  • system-执行系统命令 ,给定以后就开始60s倒计时的操作
  • 然后给用户一个友好的提示”请注意您的电脑将在1分钟后关机,请输入:我是猪 就取消关机
  • 然后用 if 判断输入的是否与 我是猪 相等,,若相等则取消关机
  • 若输入错误,则用 goto 再给提示一下

可以搜索百度,把这个文件以服务装在朋友的电脑上,把属性改成自动,然后就变成开机一分钟后关机,然后你可以很装逼地帮朋友解决,哈哈哈哈哈

到这里,分置于循环语句就总结完了

紧随鹏哥脚步,认真学好C语言

如果有什么错误的地方,请务必指出!


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

世界很美,你很特别

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

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

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

打赏作者

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

抵扣说明:

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

余额充值