选择语句是C语言中的重要组成部分,该部分也比较基础,本文将通过最通俗易懂的方式来为大家做出讲解。相信通过本文的学习,让大家一举拿下C语言选择语句的知识点。
用图示来表示 if…else 语句其实就是当条件为真的时候执行某一部分的内容,当条件为假的时候就跳过这部分的内容接着往下执行。
if (表达式)
{
语句块1;
}
else
{
语句块2;
}
if…else语句最常见的流程就是上面这样。当表达式为真的时候执行语句块1的内容,当表达式为假的时候执行语句块2的内容。那么可能有些人就会问了,表达式什么样才是真,什么样才是假?回答这个问题很简单,只要表达式的结果为0,那么表达式就是假,其余情况都是真。
if (表达式)
{
语句块1;
}
当只有 if 的时候,表达式为真就执行语句块1,否则就跳过语句块的内容。
if (表达式)
{
语句块1;
}
else
{
语句块2;
}
当 if…else 的时候,表达式为真就执行语句块1,表达式为假就执行语句块2。
if (表达式1)
{
语句块1;
}
else if(表达式2)
{
语句块2;
}
else
{
语句块3;
}
当表达式1为真的时候就只执行语句块1的内容,其余语句块不执行。当表达式1为假并且表达式2为真的时候就只执行语句块2的内容,其余语句块不执行。当表达式1和表达式2都为假的时候执行语句块3的内容,其余语句块不执行。在这种情况下,else if是可以无限加的,并不是只能有一个else if。
需要注意的是else不可以单独出现,if可以单独出现,并且else总是和它同级的那个if 相匹配。
源代码:
#include
int main()
{
int scores = 0;
printf("Please enter student scores: ");
scanf("%d", &scores);
if (scores < 0) {
printf("input error\n");
} else if (scores < 60) {
printf("Underachievement!\n");
} else if (scores < 80) {
printf("academically qualified!\n");
} else if (scores <= 100) {
printf("perfect grade!\n");
} else {
printf("input error\n");
}
return 0;
}
表达式1 ? 表达式2 : 表达式3
三目运算符是一个运算符,并且C语言中有且只有一个三目运算符。使用三目运算符可以用来代替 if…else 语句。上面三目运算符的流程为,如果表达式1为真,则将表达式2的结果作为最终运算结果,否则就将表达式3的结果作为最终运算结果。举例例子具体说明下:
源代码:
#include
int main()
{
int a = 0, b = 0, max = 0;
printf("请输入两个数: ");
scanf("%d%d", &a, &b);
max = a > b ? a : b;
printf("两数中较大的数是: %d", max);
return 0;
}
switch…case语句就是,如果表达式1的 结果和下面的表达中任意一个表达式相等,就执行对应的代码块的内容,而其余代码块中的内容不会被执行。
switch(表达式1)
{
case 表达式2:
语句块2;
break;
case 表达式3:
语句块3;
break;
case 表达式4:
语句块4;
break;
……
default:
语句块n;
break;
}
switch…case语句在代码中的流程一般如上所示。其中表达式1的结果一般是整形常量或字符常量。当表达式的结果和 case 后面的表达式结果一致时,就会执行对应的语句块的内容,否则,就会进入default中,执行语句块n 。然后在break的时候跳出大括号的内容。
在使用 switch…case 语句时有两点需要大家特别注意。
#include
int main()
{
int scores = 0;
char grade = 'Z';
printf("Please enter student scores: ");
scanf("%d", &scores);
if (scores < 0) {
printf("input error\n");
} else if (scores < 60) {
grade = 'C';
} else if (scores < 80) {
grade = 'B';
} else if (scores <= 100) {
grade = 'A';
} else {
printf("input error\n");
}
switch(grade)
{
case 'A':
printf("perfect grade!\n");
break;
case 'B':
printf("academically qualified!\n");
break;
case 'C':
printf("Underachievement!\n");
break;
default:
printf("input error\n");
break;
}
return 0;
}