if......else语句只能有两个分支执行路径。即非此即彼。就是茶与咖啡二选一。它的确解决了我们在实际工作遇到的很多问题。我一直是一个悲观主义者,问题总比办法多。 因为办法不会凭空有的,有问题才会有办法。但是总会有问题产生的。
假如三选一、者四选一、五选一等等。怎么来解决这个问题呢?C语言为我们提供if ..else..的嵌套。即我们将从所有的可能路径中逐个依次选择检查。也是一种排除法。具体方法如下:
1,从所有选择路径中选择第一种,比较是否条件处理。如果成立则执行。结束if..else嵌套语句。
2,如果不成立,在所 有选择路径中排除掉第一种选择。检查第二种路径选择条件是否成立。如果处理则执行。结束if..else嵌套语句。
3,如果不成立,在所有选择路径中排除掉第一、二中选择。检查第三中选择路径条件是否成立。如果处理则执行。结束if..else嵌套语句。
4...........................
......
n 、 选择条件全部比较完,结束结束if..else嵌套语句。
以上1-n理解起来比较麻烦。我们参看一个例子。如果我们对一个学生成绩进行评价。
1、100-90 成绩为优秀
2、89-80成绩为优良
3、79-70成绩为良
4、69-60成绩及格
5、60-0成绩不及格
我们先使用 if 语句来实现
void main()
{
int score;
printf("请输入成绩:");
scanf("%d",&score)
if((score>100)||(score<0))
{
printf("分数输入错误\n");
exit(1);
}
if((score<=100)||(score<=90))
{
printf("成绩优秀!\n");
exit(0);
}
if((score<=89)||(score<=80))
{
printf("成绩优良!\n");
exit(0);
}
if((score<=79)||(score<=70))
{
printf("成绩为良!\n");
exit(0);
}
if((score<=69)||(score<=60))
{
printf("成绩及格!\n");
exit(0);
}
if(score<60)
{
printf("成绩不及格!\n");
exit(0);
}
}
使用if..else嵌套实现方法
void main()
{
int score;
printf("请输入成绩:");
scanf("%d",&score)
if((score>100)||(score<0))
{
printf("分数输入错误\n");
exit(1);
}
else
{
if((score<=100)||(score<=90))
{
printf("成绩优秀!\n");
}
else
{
if((score<=89)||(score<=80))
{
printf("成绩优良!\n");
}
else
{
if((score<=79)||(score<=70))
{
printf("成绩为良!\n");
}
else
{
if((score<=69)||(score<=60))
{
printf("成绩及格!\n");
}
else
{
printf("成绩不及格!\n");
}
}
}
}
}
}
使用if..else嵌套语句,当选择路径多的时候程序显得比较凌乱。这时一定要注意书写“错行”。可以使您的代码显得清晰可读。这也是一个人修养表现。