C语言-分支与循环
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
#include
int main()
{
int age=10;
if(age>0&&age<18)
printf("少年\n");
else if(age>=18&&age<30)
printf("青年\n");
else if(age>=30&&age<50)
printf("壮年\n");
else if(age>=50&&age<150)
printf("老年\n");
else
{
printf("输入错误\n");
printf("请更改\n");
}
return 0;
}
1.解释(如果表达式为真,则执行语句):
在C语言中如何表示真假,0表示假,非0表示真
2.if语句怎样使用多条语句:
使用代码块{ },将语句放置在花括号中
错误示例:
int main()
{
int x=0;
int s=1;
if(x==1)//==判断相等 =赋值
if(s==1)
printf("文字\n");
else
printf("数字\n");
return 0;
}
注意: 这种情况程序不执行!
第一个表达式(x=1)不为真,并且没有else与之匹配。
else与离它最近且未匹配的if进行配对。
2.switch语句
switch语句也是分支语句的一种,它常常用于多分支的情况。
就是因为一直使用else if太麻烦了,所以有了switch语句。
switch(整型表达式)
{
语句项;
}
问:那什么是语句项?
case 整形常量表达式:
语句;
#include
#include
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
#include
int main()
{
int s = 1;
while(s<=10)
{
/*
if(s==9)
continue;
如果加上,会进入一个死循环,因为s++写在后面,
当s等于9时,跳过了后面的代码,包括s++,
所以s数值不变,返回循环是依然是9。
*/
printf("%d\n",s );
s++;
}
return 0;
}
补充:
continue
continue用于终止循环中本次循环continue后的代码,直接跳到下一次循环入口。
break
break用于停止后面的所有循环,直接终止。
2.for循环
for(表达式1;表达式2;表达式3)
循环语句;
1.表达式1为初始化部分,用来初始化循环变量
2.表达式2为条件判断部分,用于判断循环什么时候终止
3.表达式3为调整部分,用于循环条件的调整
#include
#include
int main()
{
int s = 0;
for(s=1;s<=10;s++)
printf("%d\n",s);
return 0;
}
对比for循环与while循环
1.在while循环中依然存在循环的三个必要条件,但由于风格问题使它们离的比较远,所以修改不够集中和方便,与之相比,for循环风格更好,所以for循环的使用频率较高。
2.for循环中也可以使用break和continue,意义和while循环中的一样,只不过因为for循环的条件判断部分在前边,所以当使用continue是不会陷入死循环。
建议:
不可以在for循环体内修改循环变量,防止for循环失去控制
for循环的循环控制变量的取值采用“前闭后开区间”写法
3.do while循环
do
循环语句;
while(表达式);
#include
#include
int main()
{
int s = 1;
do
{
printf("%d\n",s);
s++;
}
while(s<=10);
return 0;
}
do语句特点:
循环至少执行一次,使用的场景有限,所以不是经常使用
结尾
分支与循环的内容就到此结束了,但是学习是不可以停止的。