多个if和一个ifelse的区别

一个程序的要求如下,输入一个学生的数学成绩,如果大于等于60,那么就输出good,如果小于60那么输出not good

int a

scanf_s("%d",&a)

if(a>=60)

{

  printf("good");

}

if(a<60)

{

  printf("not good");

}

逻辑上是没有问题的,是可以解决问题的,但是实际运行起来的流程是这样的。如果用户输入90,那么程序会先

判断a是否大于等于60,恩,条件成立输出good,然后又会判断a是否小于60,这里不应该多这一次判断的。这个程序的判断条件比较简单,如果是很复杂的判断条件,那么程序的性能就会受到影响。

我们要的效果是你判断成绩大于60成立就不要再判断是否小于60了,我们可以用if else来实现。

if(a>=60)

{

  printf("good");

}else

{

  printf("not good");

}

if else的只对a判断一次,条件成立则打印good 不成立打印not good

今天想了一下,发现问题的关键不是在性能方面,而是逻辑有问题,如果成绩大于等于60就不应该判断成绩是否小于60了。

原文地址:https://www.cnblogs.com/yfish/p/9781383.html