【C语言有这个就够了】一.分支语句和循环语句(1)
发布时间:2023-08-14 09:02:30 191 相关标签:
(一)前言
C语言是一门结构化的语言
1.顺序结构
2.选择结构
分支语句:
3.循环结构
循环语句:

(二)语句
1.分类
表达式语句,函数调用语句,控制语句,复合语句,空语句
2.本章内容(控制语句)
条件判断语句(分支语句):if语句,switch语句;
循环执行语句:do while语句,while语句,for语句;
转向语句:break语句,goto语句,continue语句,return语句。
(三)分支语句(选择结构)
1.if语句
//语法结构
//单分支
if(表达式)
语句;
//多分支
if(表达式1)
语句1;
else if(表达式2) //else if不限量
语句2;
else
语句3;
1.1演示
//输入一个年龄后判断
//若小于0,则输出未出生
//若为小于等于44,则输出青年
//若为45-59,则输出中年
//若为60-122,则输出老年
//若大于122,则输出“建国之后不准成精”
#include
int main()
{
int age = 0;
printf("请输入年龄\n");
scanf("%d", &age);
if (age < 0)
printf("未出生");
else if (age <= 44)
printf("青年");
else if (age <= 59)
printf("中年");
else if (age <= 122)
printf("老年");
else
printf("建国之后不准成精");
return 0;
}

1.2被悬空的else
#include
int main()
{
int a=0;
int b=3;
if(a==1)
if(b==3)
printf("1314");
else
printf("520");
return 0;
}
输入上面这串代码,你会惊讶的发现输出结果既不是1314,也不是520,而是

这是因为else和最近的未匹配的if匹配,而在这段代码的书写风格中,我们很容易将其误解未和第一个if匹配。
更改为:
#include
int main()
{
int a=0;
int b=3;
if(a==1)
{
if(b==3)
{
printf("1314");
}
}
else
{
printf("520");
}
return 0;
}
这样,通过括号,我们使else与第一个if匹配,得到:

1.3代码风格
//1
if(condition){
return x;
}
return y;
//2
if(condition)
{
return x;
}
else
{
return y;
}
//3
int a=1;
if(a==1)
//4
int a=1
if(1==a) //防止写成赋值语句(a=1),这样写成(1=a)会报错。
2,4更优
1.4练习
#include
int main()
{
int a = 0;
printf("输入一个数\n");
scanf("%d", &a);
if (0 != a % 2)
{
printf("是奇数");
}
else
{
printf("是偶数");
}
return 0;
}
2.switch语句
2.1语法
switch(整型表达式)
{
case 整形常量表达式:
语句;
}
2.2switch中的break
搭配break形成真正的分支,用以跳出循环
如
#include
int main()
{
int day = 0;
printf("请输入星期\n");
scanf("%d",&day);
switch (day)
{
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;
}
return 0;
当输入的数字是3时,有case 3进入语句,
执行打印语句后到break,跳出switch语句。
思考如果没有break会发生什么?

我们发现当没有break时,语句会从进入的case一直执行到结束。
变式:
#include
int main()
{
int day = 0;
printf("请输入星期\n");
scanf("%d",&day);
switch (day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("weekday\n");
break;
case 6:
case 7:
printf("weekend\n");
break;
}
return 0;
}
2.3default子句
当表达式的值与所有的case标签都不相符,所有语句都会被跳过,程序不会终止,也不会报错。

这时我们可以添加一条default子句,它可以出现在语句列表中的任意位置,而且语句流会像执行case一样执行它。
#include
int main()
{
int day = 0;
printf("请输入星期\n");
scanf("%d",&day);
switch (day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("weekday\n");
break;
case 6:
case 7:
printf("weekend\n");
break;
default:
printf("输错了\n");
break;
}
return 0;
}
文章来源: https://blog.51cto.com/u_15796276/5729486
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报