返回

【C语言有这个就够了】一.分支语句和循环语句(1)

发布时间:2023-08-14 09:02:30 191

(一)前言

C语言是一门结构化的语言

1.顺序结构

2.选择结构

分支语句:

if
switch

3.循环结构

循环语句:

while
for
do while

【C语言有这个就够了】一.分支语句和循环语句(1)_switch语句

(二)语句

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;
}

【C语言有这个就够了】一.分支语句和循环语句(1)_#include_02

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,而是

【C语言有这个就够了】一.分支语句和循环语句(1)_while语句_03

  这是因为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匹配,得到:

【C语言有这个就够了】一.分支语句和循环语句(1)_while语句_04

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会发生什么?

【C语言有这个就够了】一.分支语句和循环语句(1)_switch语句_05

我们发现当没有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标签都不相符,所有语句都会被跳过,程序不会终止,也不会报错。

【C语言有这个就够了】一.分支语句和循环语句(1)_switch语句_06

这时我们可以添加一条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;
}

 

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
小比特3 2023-08-14 05:53:05