跨境派

跨境派

跨境派,专注跨境行业新闻资讯、跨境电商知识分享!

当前位置:首页 > 卖家故事 > 【C语言初阶(三)】分支和循环

【C语言初阶(三)】分支和循环

时间:2024-03-25 20:51:04 来源:网络cs 作者:康由 栏目:卖家故事 阅读:

标签: 循环  分支  语言 
阅读本书更多章节>>>>

❣博主主页: 33的博客❣
▶文章专栏分类: C语言从入门到精通◀
🚚我的代码仓库: 33的代码仓库🚚

目录

1.前言2.if语句2.1if 语句2.2else2.3嵌套if2.4悬空else问题 3.关系操作符4.条件操作符5.算数逻辑操作符5.1与 或运算 6.switch语句6.1switch语句中的break6.2switch语句中的default 7.while循环8. for循环9.do-while循环10.continue和break11.循环嵌套12.goto 语句13.总结

1.前言

c语言是结构化的程序语言,这里的结构化指的是顺序结构,分支结构,循环结构,c语言能够实现这三种语言。我们可以使用if和switch语句实现分支结构,for、while和do while实现循环结构,接下来我们就通过本篇文章进行深入学习。
本章重点

本篇文章主要对if语句,关系操作符,条件操作符,逻辑操作符,switch语句;for、while、do while循环;break,continue语句;go to语句等等进行介绍


2.if语句

2.1if 语句

形式如下:

if(表达式)语句;

表达式为真,则执行语句,其中0为假,非0为真

2.2else

语句形式如下:

if(表达式)语句;else 语句;

例子:输入年龄,如果小于18则输出未成年,如果大于18则输出已成年

int main{int age = 0;scanf("%d",&age);if(age<18)printf("未成年");if(age>=18)printf("已成年");}

if语句只能控制一条语句,如果要输出两条语句该怎么办呢?其实只要在后面加入{ }就可以解决。如下:

int main{int age = 0;scanf("%d",&age);if(age<18){printf("未成年");printf("不可以谈恋爱");}if(age>=18){printf("已成年");printf("可以谈恋爱");}}

一般习惯性的在输入if语句后就直接加入大括号{}


2.3嵌套if

在if else语句中,else中与另一个if语句连用,构成多重判断。
例子:输入一个数判断输入的整数是0还是整数或者负数

if(a==0){printf("是0");}else//以下是嵌套{if(a>0)printf("是正数");elseprintf("是负数");}

2.4悬空else问题

悬空else问题就是else总是跟最近的一条if匹配,接下来通过下面的代码进行讲解

int a = 1;int b = 2;if(a==1)if(b==2)printf("hehe");elseprintf("haha");return 0;

那么上述结果是多少呢?else与最近的if匹配就是hehe


3.关系操作符

c语言中用于比较的表达式,称为“关系表达式”,里面使用的运算符就是关系运算符,主要有以下6个

大于符号 >
小于符号 <
大于等于符号 >=
小于等于符号 <=
相等运算 ==
不相等运算 !=

注意==与=的使用:==表示判断是否相等,=表示是否相等
另一个需要注意的是关系操作符号不能连用,如果要表达a<b<c那么应该写成a<b&&b<c


4.条件操作符

之前我们已经学习了单目和双目操作符了,其实条件操作符就是三目操作符
形式如下:返回连个数中的较大值

//exp1?exp2:exp3如果exp1为真那么执行exp2,为假就执行exp3//返回两个数中的较大值int a=0;int b=2;scanf("%d %d",&a,&b);int m = a>b?a:bprintf("%d",m);

5.算数逻辑操作符

算数逻辑提供逻辑判断功能,用于构造更赋值的表达式,主要有以下3个:

逻辑取反运算 !
与运算 &&
或运算 ||


5.1与 或运算

与运算&&:只要有一条语句是假,那么整个表达式就是假
或运算||:只要有一条语句是真,那么整个表达式就是真
短路:如果左边的表达式不成立就不用计算右边的表达式
例子:判断闰年,规则 1.能被4整除并且不能被100整除 2.能被400整除

int year= 0;scanf("%d",&year);if(year%4==0&&year%100!=0||year%400==0){printf("%d是闰年",year);}else{printf("%d不是闰年",year);}

6.switch语句

除了if语句外,c语言中还提供了switch语句来实现分支语句。switch语句是一种特殊的if…else结构,用于判断条件有多个结果的情况。
形式如下:

switch(expression)case value1:statementcase value2:statementdefault:statement

switch后面的语句必须是整型表达式,字符也属于
case后面的值,必须是整型常量表达式

int a =0;scanf("%d",&a)switch(a%3){case 1:   //case和1之间有空格!!!一定要有printf("余数是1");break;case 2:printf("余数是2");break;case 0:printf("能被整除");break;}

6.1switch语句中的break

试想,如果上面的式子,中没有break,会出现什么情况呢?
测试一下:输入8
在这里插入图片描述
我们发现本来应该输出余数是2;但多了一行。原因是switch语句中使用break才能跳出switch语句,如果某一个case语句没有break2,代码会继续往下执行,直到遇到break才结束。所以在switch语句中使用break是非常重要的。


6.2switch语句中的default

当switch后表达式的值无法匹配代码中的case语句时,这时候要不就不处理,要不就得switch中加入default语句,case和default语句是没有顺序要求的,但通常放在最后。
格式如下:

switch(expression)case value1:statementcase value2:statementdefault:statement

7.while循环

c语言中有3种循环语句,while就是其中一种,接下来介绍while循环
格式如下:

while(表达式)语句;

while语句的执行流程
在这里插入图片描述
表达式的值为0,循环直接结束,非0,进行语句。
例子1:在屏幕在打印1~10

int i =1;while(i<=10){printf("%d",i);i++;}

例子2:输入一个正整数,逆序打印

int main(){int n = 0;scanf("%d",&n);while (n){int a = n % 10;printf("%d", a);n = n / 10;}return 0;}

8. for循环

格式如下:

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

表达式1:初始化
表达式2:判断
表达式3:调整

例子1:在屏幕上打印1~10

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

for循环和while对比
在这里插入图片描述


9.do-while循环

格式如下:

do语句;while(表达式);

在do while语句中循环体是至少执行一次的,只是比较特别的地方
例子1:在屏幕在打印1~10

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

例子2:输入一个正整数,计算这个数是几位数

int main(){int a = 0;int count = 0;scanf("%d",&a);do{a = a / 10;count++;} while (a);printf("这个数是%d位",count);return 0;}

10.continue和break

continue的作用:可以帮助我们跳过某一次循环continue以后的代码,直接到循环的判断部分,进行下一次循环。
break的作用:永久中止循环,只要执行了break就跳出循环。

对比while循环和for循环中continue的区别
在这里插入图片描述


11.循环嵌套

前面学习了三种循环,这三种循环往往会嵌套在⼀起才能更好的解决问题,就是我们所说的:循环嵌套,这⾥我们就看⼀个例⼦。
练习:找出100~200之中的素数(只能被1和本身整除)

int main(){int i = 100;for (i = 100; i <= 200; i++){//100~200的数int j = 0;int a = 1;//假设为素数for (j = 2 ; j <i ; j++){if (i % j == 0){a = 0;break;//如果某一个值能被整除就跳出}}if (a==1){printf("%d  ",i);}}return 0;}

12.goto 语句

C语⾔提供了⼀种非常特别的语法,就是goto语句,goto语句可以实现在同一个函数内跳转到设置好的标号处。

 int main() { printf("hehe\n"); goto next: printf("haha\n"); next: return 0; }

但值得注意如果语句如果使⽤的不当,就会导致在函数内部随意乱跳转,打乱程序的执⾏流程,所以我们尽量不要使用多次。


13.总结

本篇文章我主要对if语句,关系操作符,条件操作符,逻辑操作符,switch语句;for、while、do while循环;break,continue语句;go to语句进行了介绍,但依然有没有涉及的地方,感兴趣的同学可以去看看其他博主的文章来学习。

下章预告:猜数字游戏

阅读本书更多章节>>>>

本文链接:https://www.kjpai.cn/gushi/2024-03-25/148640.html,文章来源:网络cs,作者:康由,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

文章评论