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
    评论
ava实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),可运行高分资源 Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言中,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言中常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和指针运算符(如、等)。 3. 控制结构 C语言中常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言中用于封装代码的元,可以实现代码的复用和模块化。C语言中定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 指针 指针是C语言中用于存储变量地址的变量。通过指针,可以实现对内存的间接访问和修改。C语言中定义指针使用星号()符号,指向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言中用于存储同类型数据的结构,可以通过索引访问和修改数组中的元素。字符串是C语言中用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言中用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言中通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件指针,用于表示打开的文件。通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

世界很美,你很特别

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

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

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

打赏作者

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

抵扣说明:

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

余额充值