if语句、选择语句、判断语句
if语句
在C语言中程序把非零和非空的值判断为true,把零和NULL判断为false
if语句的流程图
if语句的语法
if(判断条件)
{
条件为true时执行的代码
}
代码示例
int main()
{
int score = 60;
//实现判断成绩是否合格
if (score >= 60)
{
printf("成绩合格");
}
//当{}中只有一条语句时{}号可以省略
if (score >= 60)
printf("成绩合格");
return 0;
}
if…else语句
if…else语句流程图
if…else语句语法
if(判断条件)
{
条件为true时执行的代码
}
else
{
条件为false使执行的代码
}
代码示例
int main()
{
int score = 60;
//实现判断成绩是否合格
if (score >= 60)
{
printf("成绩合格");
}
else
{
printf("成绩不合格");
}
//当{}中只有一条语句时{}号可以省略
if (score >= 60)
printf("成绩合格");
else
printf("成绩不合格");
return 0;
}
if…else if…else语句
if…else if…else语句流程图
代码语法
if(判断条件1)
{
判断条件为true时执行的代码
}else if(判断条件2)
{
当判断条件2上面的判断条件为false,且判断条件为true时执行的代码
}
else
{
当上面判断条件都为false是执行的代码
}
代码示例
int main()
{
int score = 60;
//判断成绩的等级
//100-80为A,79-60为B,59-0为C
if (score >= 80 && score<=100)
{
printf("成绩等级为A");
}
else if(score>=60 && score<=79)
{
printf("成绩等级为B");
}
else if (score >= 0 && score <= 59)
{
printf("成绩等级为C");
}
else
{
printf("你的成绩输入错误");
}
return 0;
}
if嵌套语句
if嵌套语句流程图
代码语法
if(判断条件1)
{
判断条件1为true时执行的代码
if(判断条件2)
{
判断条件1和判断条件2同为true时执行的代码
}
}
else
{
判断条件1和判断条件2同为false时执行的代码
}
代码示例
int main()
{
int x = 66;
int y = 88;
if (x == 66)
{
printf("x == 66");
//if语句里面的if语句
if (y == 88)
{
printf("x == 66, y == 88");
}
}
else
{
printf("x != 66, y != 88");
}
return 0;
}
悬空else
当if语句嵌套和{}
里面只有一条语句的时候,{}
可以省略,这时格式不对会出现有趣的事情
int main()
{
int x = 66;
int y = 99;
if (x == 66)
if (y == 88)
printf("x == 66, y == 88");
else
printf("x != 66, y != 88");
return 0;
}
执行后的结果为x != 66, y != 88
总结:
此时else不再是跟第一个if进行组合,因为省略了{}所有else会和相离最近的else组合,也就是第二个if组合
所有,我们应该适当的使用{}使代码的逻辑更加清晰
switch语句
switch语句流程图
代码语法
switch(整型表达式)
{
case 整型常量表达式1:
整型表达式与整型常量表达式1匹配时执行的代码
break;
case 整型常量表达式2:
整型表达式与整型常量表达式2匹配时执行的代码
break;
case 整型常量表达式3:
整型表达式与整型常量表达式3匹配时执行的代码
break;
default:
整型表达式与上面整型常量表达式都不匹配时执行的代码
}
注:
switch()
的括号里除了可以放整型表达式还可以放枚举类型case
后面的整型常量表达式必须是与整型表达式相同的类型,且一定是常量- 不是每个
case
都要加break,不加break
会使程序继续往下走执行下一个case
default
为可选项,可以不写
代码示例
int main()
{
int day = 7;
switch (day) {
case 0:
printf("今天是");
//这里没有加break关键字,会让这里形成穿透,不管case 0有没有匹配成功程序都要经过这里,
//也就是不管day的值为多少都会打印 今天是。
//break语句的实际效果是把语句列表划分为不同的分支部分
case 1:
printf("星期一");
break;
case 2:
printf("星期二");
break;
case 3:
printf("星期三");
break;
case 4:
printf("星期四");
break;
case 5:
printf("星期五");
break;
case 6:
printf("星期六");
break;
case 7:
printf("星期七");
break;
default:
printf("数组有误");
}
return 0;
}
本文出现任何错误,欢迎留言批评指正。