C语言之分支与循环
前言
C语言是一门结构化的程序设计语言,主要分为三种结构:
1.顺序结构
2.选择结构
3.循环结构
下面我们主要探讨的是选择结构和循环结构。
分支语句和循环语句
分支语句
- if
- switch
循环语句
- while
- for
- do while
goto语句
问:那什么是语句?C语言中由一个分号(;)隔开的就是一个语句。
一、分支语句(选择结构)
举个栗子:当你站在学习的分岔口时,你可以选择是否学习,然后当有一天你遇到了改变你命运的机会,那么这个时候:
好好学习+机遇=人生巅峰;不好好学习+机遇=回家放羊;
这就是选择,我们的每一个选择都决定着我们的人生(这个时候请富二代自行划走)。
1.if语句
if语句的三种情况: if(表达式) //如果表达式为真,则执行语句语句; if(表达式)语句1; else(表达式)语句2; if(表达式)语句1; else if(表达式)语句2; else语句3;
#include <stdio.h>#include <stdlib.h>int main(){ int age=10; if(age>0&&age<18) printf("少年
"); else if(age>=18&&age<30) printf("青年
"); else if(age>=30&&age<50) printf("壮年
"); else if(age>=50&&age<150) printf("老年
"); else { printf("输入错误
"); printf("请更改
"); } return 0;}
1.解释(如果表达式为真,则执行语句):在C语言中如何表示真假,0表示假,非0表示真2.if语句怎样使用多条语句:使用代码块{ },将语句放置在花括号中
错误示例:
int main(){ int x=0; int s=1; if(x==1)//==判断相等 =赋值 if(s==1) printf("文字
"); else printf("数字
"); return 0;}
注意: 这种情况程序不执行! 第一个表达式(x=1)不为真,并且没有else与之匹配。 else与离它最近且未匹配的if进行配对。
2.switch语句
switch语句也是分支语句的一种,它常常用于多分支的情况。
就是因为一直使用else if太麻烦了,所以有了switch语句。
switch(整型表达式) { 语句项; } 问:那什么是语句项? case 整形常量表达式: 语句;
#include <stdio.h>#include <stdlib.h>int main(){ int win = 0; scanf("%d",&win); switch(win) { case 1: printf("IG"); break; case 2: printf("FPX"); break; case 3: printf("EDG"); break; case 4: printf("RNG"); break; case 5: printf("TES"); break; default: printf("输入错误"); break; } return 0;}
注意:1.想输出单个分支内容在switch语句中,我们没办法直接实现分支,所以需要搭配 break 使用,break的实际效果就是把语句结束。2.default语句:如果输入的东西与所有的case标签都不一样,可以加入一条default语句,程序就会执行default语句的内容,每个switch语句只能有一个default子句,但是它可以出现在语句列表的任何位置,语句流会向贯穿case标签一样贯穿default子句。
二、循环语句
再举个栗子:当你再次站在学习的分岔口时,这个时候你不一样了,你有身份,你是世界第二富的儿子,你还是可以选择是否学习:
好好学习+机遇=人生巅峰;不好好学习+自己制造机遇=人生巅峰;不好好学习+金钱的力量=人生巅峰;
1.while循环
当满足条件时,if语句的执行只会执行一次,但实际上,同一件事,我们需要完成很多次,这个时候就需要用到while语句来帮助我们实现循环。
while(表达式) 循环语句;
#include <stdio.h>#include <stdlib.h>int main(){ int s = 1; while(s<=10) { /* if(s==9) continue; 如果加上,会进入一个死循环,因为s++写在后面, 当s等于9时,跳过了后面的代码,包括s++, 所以s数值不变,返回循环是依然是9。 */ printf("%d
",s ); s++; } return 0;}
补充: continuecontinue用于终止循环中本次循环continue后的代码,直接跳到下一次循环入口。 breakbreak用于停止后面的所有循环,直接终止。
2.for循环
for(表达式1;表达式2;表达式3) 循环语句; 1.表达式1为初始化部分,用来初始化循环变量 2.表达式2为条件判断部分,用于判断循环什么时候终止 3.表达式3为调整部分,用于循环条件的调整
#include <stdio.h>#include <stdlib.h>int main(){ int s = 0; for(s=1;s<=10;s++) printf("%d
",s); return 0;}
对比for循环与while循环
1.在while循环中依然存在循环的三个必要条件,但由于风格问题使它们离的比较远,所以修改不够集中和方便,与之相比,for循环风格更好,所以for循环的使用频率较高。
2.for循环中也可以使用break和continue,意义和while循环中的一样,只不过因为for循环的条件判断部分在前边,所以当使用continue是不会陷入死循环。
建议:
不可以在for循环体内修改循环变量,防止fo 河南干部培训 www.bjganxun.cn r循环失去控制
for循环的循环控制变量的取值采用“前闭后开区间”写法
3.do while循环
do 循环语句;while(表达式);
#include <stdio.h>#include <stdlib.h>int main(){ int s = 1; do { printf("%d
",s); s++; } while(s<=10); return 0;}
do语句特点:循环至少执行一次,使用的场景有限,所以不是经常使用
结尾
分支与循环的内容就到此结束了,但是学习是不可以停止的。