if…else 结构
#include <stdio.h>
int main()
{
if(条件判断语句)
{
statements;
}else{
statements;
}
}
if …else-if 语句
#include <stdio.h>
int main()
{
if(条件判断语句)
{
statements;
}else if(条件判断语句){
statements;
}else if(条件判断语句){
statements;
}else{
statements;
}
}
else-if 语句可以有无限个
无论是if...else语句还是if...else-if语句,如果下面只有一条语句的话,花括号可以省略,但是一般不要这么做,一是为了整体美观,二是带有花括号可以增强程序的可读性
switch 语句
#include <stdio.h>
int main()
{
switch(表达式)
{
case 常量表达式1:
语句1;
break;
case 常量表达式2:
语句2;
break;
case ......:
语句n;
break;
default:
语句;
break;
}
}
- 在
switch语句中的定义变量无效,不会初始化,如果要定义,可以在case下放入{}里,当作复合语句处理,或者在switch之前定义,在case里初始化 switch语句只可以执行case和default,其他的语句完全不执行break是指跳出当前循环,如果不加break,switch会从符合的case依次往下执行default语句可以放在switch任意位置,除了放在最后可以不加break,放在其他任何地方都要加break(否则参考第三条)
switch 两种基本应用场景
- 菜单跳转
- 键盘鼠标事件的监听响应
变量作用域
作用域
作用域就是有效范围
- 被
static修饰符修饰的变量,生命周期从程序运行到程序结束才死亡 - 一般的变量和作用域有关,作用域结束,则死亡
作用域的划分
根据是否被作用域限定符{}包围,分为局部变量和全局变量
-
全局变量:没有被
{}包含的变量一般是全局变量,全局变量默认初始化为0 -
局部变量:被
{}包含的变量一般是局部变量,局部变量需要手动初始化
#include <stdio.h>
int globalNumber=9; //全局变量,作用域为整个.c文件,本文件内都可以访问
int main()
{
int iNumber=1; //局部变量,作用域为main(),仅仅在main函数内调用有效
}
- 相同作用域的变量不可以重名
- C语言中变量的访问是按照就近原则,谁离它近,则谁生效
- C++中使用
::访问全局变量,C语言中没有,应当尽量避免
课后作业
1,编程题
- 从键盘上输入一个表示年份和月份两个整数,判断该年份是否是闰年,输出当前月份的天数。闰年判定条件:
- (1)被4整除但不能被100整除;
- 或(2)被400整除;
#include <stdio.h>
int main()
{
int yNum, mNum, is366, monthDays;
printf("请输入四位数年份,如2022:\n");
scanf("%d", &yNum);
printf("请输入月份,月份不标虚位,如8:\n");
scanf("%d", &mNum);
is366 = ((yNum % 4 == 0 && yNum % 100 != 0) || yNum % 400 == 0) ? 1 : 0;
switch (mNum)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
monthDays = 31;
break;
case 4:
case 6:
case 9:
case 11:
monthDays = 30;
break;
case 2:
monthDays = is366 ? 29 : 28;
break;
default:
printf("错误!,检查输入!\n");
return 0;
}
printf("%d年是%s,%d月有%d天\n", yNum, is366 ? "闰年" : "平年", mNum, monthDays);
return 0;
}
- 编写一个程序,输入某人的身高(cm)和体重(kg),按下式确定其体重是否为标准、过胖或过瘦。
- (1)标准体重=身高-110;
- (2)超过标准体重5kg (即大于5kg)为过胖;
- (3)低于标准体重5kg (即小于5kg)为过瘦。
#include <stdio.h>
int main()
{
double personHeight, personWeight, standardRule,standardWeight;
printf("请输入你的身高,单位cm:\n");
scanf("%lf", &personHeight);
printf("请输入你的体重,单位kg:\n");
scanf("%lf", &personWeight);
standardRule = personHeight - 110; //计算标准体重
if (standardRule<=0) //标准体重小于等于零则用户输入错误
{
printf("数据错误,检查输入!\n");
return 0;
}
standardWeight = personWeight - standardRule; //计算实际体重超过标准体重多少
printf("你的身高为%.2lfcm,体重为%.2lfkg,标准体重为%.2lfkg,体重%s\n", personHeight, personWeight, standardRule, (standardWeight > 5) ? "过胖,注意锻炼!" : ((standardWeight< 5&&standardWeight>0) ? "标准,继续保持!": "过瘦,注意锻炼!"));
return 0;
}
本文详细介绍了C语言中的if...else结构、if...else-if语句、switch语句及其应用场景,并解释了变量的作用域概念。通过示例代码帮助读者更好地理解和掌握这些控制结构。
1151

被折叠的 条评论
为什么被折叠?



