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嵌套语句,当选择路径多的时候程序显得比较凌乱。这时一定要注意书写“错行”。可以使您的代码显得清晰可读。这也是一个人修养表现。