目录

1.分支语句

一.if语句

if语句的语法结构

多分支

悬空else

二.switch

switch的语法结构

小结:

2.3种循环语句

1.while()

小结

2.for循环

for循环中的一些变形

3.do-while 循环

总结


1.分支语句

分支语句又叫做条件判断语句,由if语句switch语句构成

一.if语句

if语句的语法结构

if(表达式)//单分支语句;

1.注意事项

()内部放表达式,判断的结果,为真,则执行,为假则跳过。在c语言中,非零即为真。

我们来看一道题:“if语句中,0为假,1为真。” ---> 答案是错误的。 1为真是没错,但是呢,它不全,以偏概全了。不能说除了1以外的数字就不是真的。

2.注意事项

if语句后面呢,只能跟一个语句,如果要多个语句,需要用{}。

多分支

第一类:

if(表达式) //满足条件进入if语句中{语句;}else //不满足条件进入else语句中{语句;}

第二类:

if(表达式){语句;}else if(表达式){语句;}//  .... (还可以继续用 else if)else{语句;
}

要注意的是else if后面还需要增加表达式

悬空else

#include <stdio.h>int main(){int a = 0;int b = 2;if(a == 1)if(b == 2)printf("hehe\n");elseprintf("haha\n");return 0;}

你认为结果是什么呢?可以思考下

答案呢

什么都没执行。

当我们用VS2019的时候,我们可以发现,else与离它最近的if对齐了。

这就是悬空else的匹配原则。

我们在回过来说上面的代码,如果按照它的代码,第一个if与else的对齐。本意上是想:如果 a==1的时候,进去判断b是否等于2,是则打印,不是则跳过,当a != 1 的时候,则打印 haha。

我们可以加上大括号来实现

int main(){int a = 0;int b = 2;if(a == 1){if(b == 2){printf("hehe\n");}}else{printf("haha\n");}return 0;}

运行结果:

二.switch

switch 常用于多分支

switch的语法结构

switch(整型表达式){case 整形表达式:语句;case 整形表达式:语句;case 整形表达式:语句;case 整形表达式:语句;}

整形有 char ,int, long , short ,以及无符号的这些类型

我们来看个练习

用switch语句实现

比如:

输入1,输出星期一

输入2,输出星期二

输入3,输出星期三

输入4,输出星期四

输入5,输出星期五

输入6,输出星期六

输入7,输出星期日

那答案是否是这样呢?

int main()
{int i = 0;scanf("%d", &i);switch (i){case 1:printf("星期一\n");case 2:printf("星期二\n");case 3:  printf("星期三\n");case 4:printf("星期四\n");case 5:printf("星期五\n");case 6:printf("星期六\n");case 7:printf("星期七\n");}return 0;}

运行结果:

这并不是我们想要的。

switch(i) ,i 输入多少,相当于是我们从哪个入口(case 整形表达式)进入我们的switch语句中。按照顺序结构一行一行的执行下去。例如这里,我们输入 2 ,找到 case 2 这个入口,进去switch语句中,一步一步的走下去。

如果想要 输入2,输出结果只有星期二,我们就要用到 break。

在switch语句中,我们没办法直接实现分支,搭配break使用才能实现真正的分支。

我们还需要想一个问题,如果输入的数字,不是1-7中的,我们是不是也需要处理一下。这时我们需要用到default。

default子句

default子句可以写在switch语句中的任意位置。

当switch中表达式的值,与case 标签(所对应的整形的值) 不匹配的时候,就会进入default子句。

一个switch语句中只能有一个default子句

那我们改一下代码看看结果如何:

int main(){int i = 0;scanf("%d", &i);switch (i){case 1:printf("星期一\n");break;case 2:printf("星期二\n");break;case 3:printf("星期三\n");break;case 4:printf("星期四\n");break;case 5:printf("星期五\n");break;case 6:printf("星期六\n");break;case 7:printf("星期七\n");break;default:printf("输入错误,重新输入");
}return 0;
}

小结:

分支语句有2类,if语句和switch语句

else的匹配原则:离else最近的if相匹配

if(表达式)语句;switch(整形表达式)
{case 整形表达式:语句;break;case 整形表达式:语句;break;default :语句;
}

2.3种循环语句

循环语句中,有三个关键的东西:1.循环变量 2.条件判断部分(用于循环的终止) 3.调整部分(调整循环变量使其达到循环终止的条件)

1.while()

while循环流程图:

语法结构

while(表达式)     //表达式-->循环条件{循环语句;  //循环语句中要有,循环变量调整的部分}                 //循环变量,在进入while循环之前设置好

我们来看break和continue在循环中的作用

int main(){int arr[] = {1,2,3,4,5,6,7,8,9,10};//定义一个数组int n = 0;     //循环变量while (n <10)  //循环判断条件{printf("%d",arr[n]);if (n == 6)break;n++;  //循环调整部分}return 0;}

在看看continue

int main(){int arr[] = {1,2,3,4,5,6,7,8,9,10};//定义一个数组int n = 0; //循环变量while (n <10)//循环判断条件{printf("%d",arr[n]);if (n == 6)continue;n++;//循环调整部分}return 0;}

我们来分析下:

break 在循环中的作用呢,是跳出循环。

continue在循环中的作用,是结束当前条件下的循环,continue下面的语句都不在执行,直接回到判断条件那,重新进入循环。

第二个代码,能不能不死循环呢,成功打印出1234568910呢,

肯定可以的,将我们循环调整部分,放到continue的上面就可以成功打印了。

需要将我们的 三要素进行调整一下。

小结

while循环中,条件判断的次数总比执行循环语句的次数多一次。

continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接跳转到while语句的判断部分,进行下一次循环的入口判断。

break是直接结束循环。

2.for循环

语法结构

for(表达式1;表达式2;表达式3){循环语句;}

表达式1 --> 循环变量

表达式2 --> 条件判断部分

表达式3 --> 调整部分

for循环流程图

expr -- 表达式

这里的break和我们while循环中的break是一样的;

continue呢存在一点差异。

break:

continue:

在for循环中,使用continue不会遇到死循环,因为我们n++永远是在continue的上面,我们看流程图也是可以发现这一点的

for循环中的一些变形

int main(){//代码1for(;;){printf("hehe\n");}//for循环中的初始化部分,判断部分,调整部分是可以省略的,但是不建议初学时省略,容易导致问题。//代码2int i = 0;int j = 0;//这里打印多少个hehe?for(i=0; i<10; i++){for(j=0; j<10; j++){printf("hehe\n");}}//代码3int i = 0;int j = 0;//如果省略掉初始化部分,这里打印多少个hehe?for(; i<10; i++){for(; j<10; j++){printf("hehe\n");}}//代码4-使用多余一个变量控制循环int x, y;for (x = 0, y = 0; x<2 && y<5; ++x, y++){printf("hehe\n");}return 0;}

大家可以尝试的去看看,我们只要增加一个变量 count 来计数就行了。

3.do-while 循环

语法结构

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

do-while流程图

do-while循环中,不管满不满足条件,都会执行一次。

在来看看break和continue在do-while循环中的作用

break:

和上面两种循环中一样,跳出循环。

continue:

和我们while循环中一样。我们要将循环调整部分放在continue的上面,我们才能不死循环。

改变后

同样将我们的循环三要素改变。

总结

回顾了分支语句和循环语句。

分支语句 2类,if语句,switch语句

if语句的单分支,多分支以及else的匹配原则。

switch语句与break和default连用

循环语句 3类

while(表达式), for(表达式1;表达式2;表达式3), do-while(表达式)

循环语句中break和continue在各自循环的作用。

盘复分支语句和循环语句的那些知识相关推荐

  1. Matlab变量、分支语句和循环语句

    Matlab变量.分支语句和循环语句 一.Matlab的变量 1.变量的命名 Matlab的变量名由数字.字母和下划线组成,可是仅仅能由字母开头.大写和小写敏感,最大长度为63个字符.不能使用Matl ...

  2. python分支语句_Python中的分支语句和循环语句及案例

    今天是清明假期的最后一天,依旧学习着 Python,老样子来写一篇博客.本篇博文介绍一下 Python 中的 if 条件语句.while 循环语句.for in 循环语句以及 break 和 cont ...

  3. C语言分支语句与循环语句较为全面的总结,快来看呀!!

    分支语句和循环语句: 写在开篇:C语言其实算比较熟悉了,这里都是一些基础的总结,但感觉每次看都会有一些收获,也许这就是意义所在,冲冲冲!! 本章重点学习分支语句和循环语句的使用. 分支语句: if s ...

  4. python分支语句_Python语言基础分支语句、循环语句.ppt

    * * 循环结构回顾 for循环 for 循环作为编程语言中最强力的特征之一 Python可以使用for语句循环遍历整个序列的值 for循环所做的概括为一句话: 于- 其中的每一个元素,做-事情 * ...

  5. C语言——分支语句和循环语句

    目录 1.什么是语句 2.分支语句(选择结构) 2.1 if语句 2.2switch语句 3.循环语句 3.1while语句 3.1.1 语法 3.1.2 while中break和continue 3 ...

  6. python多分支语句实例_Python分支语句与循环语句应用实例分析

    Python分支语句与循环语句应用实例分析 来源:中文源码网    浏览: 次    日期:2019年11月5日 [下载文档:  Python分支语句与循环语句应用实例分析.txt ] (友情提示:右 ...

  7. 【分支语句与循环语句】

    分支语句与循环语句 一.分支语句 1.多分支语句 2.悬空else 3.switch语句 2.循环语句 2.1 while循环 2.2 getchar()和putchar() 2.3 for循环 2. ...

  8. C语言学习 2.分支语句与循环语句

    文章目录 分支语句与循环语句 1. 什么是语句 2. 分支语句(选择结构) 1. if语句 1.1 if的书写形式 1.2 练习 2. switch语句 2.1 在switch语句中的break 2. ...

  9. 【C语言】分支语句和循环语句

    大家好!我是保护小周ღ,本期为大家带来的是C语言的分支语句和循环语句,详细的介绍了 if(). switch() 这两种分支语句,以及while().do while ().for(),三种循环语句, ...

最新文章

  1. 第十五周程序阅读-范型程序设计(6)
  2. 正则表达式grep, egrep, fgrep
  3. TomCat服务器和Web应用
  4. 网络层访问权限控制技术-ACL详解 (2)
  5. 使用durid的ConfigFilter对数据库密码加密
  6. 硬编码与非硬编码(软编码)区别
  7. ASP.NET中Session简单原理图
  8. java private 内部类_java中外部类是否可以访问内部类的private 元素呢?
  9. 深度的卷积神经网络CNN(MNIST数据集示例)
  10. 2017最后两个半月的安排
  11. [翻译 EF Core in Action 1.9] 掀开EF Core的引擎盖看看EF Core内部是如何工作的
  12. hadoop1.2.1伪分布式搭建
  13. 1133 Splitting A Linked List
  14. idea安装axios
  15. 校园热水供应系统设计思路
  16. android源码中国地图,Android 绘制中国地图
  17. 信息系统项目管理师论文范围管理范文(2021上半年范围管理论文)
  18. 手机浏览器打开百度网页
  19. 信号与系统 --- 线性卷积(linear convolution)
  20. java判断颜色合法_判断颜色是否合法的正则表达式(详解)

热门文章

  1. Unity Failed to resolve project template:Failed to decompress
  2. 养龟者,养心也(浅析巴西龟的饲养方法)
  3. html5自动填充账号密码,谷歌浏览器怎么自动填充账号密码?自动填充账号密码的方法分享...
  4. 针对此次疫情的防控建议
  5. [PWN][基础篇]基础理论
  6. win10共享服务器有的文件夹打不开,手把手教你解决win10系统共享文件夹无法访问的设置方案....
  7. 《Fundamentals Of Computer Graphics》虎书第三版翻译——第五章 线性代数
  8. (Python)卫星RPC有理多项式模型读取与正反投影坐标计算原理与实现
  9. 几种PHP实现网页抓取的程序代码
  10. IKEA宜家社会责任验厂标准