if(如果),else(否则),else if(那么如果)的表达区别,即程序的运行规律与运行顺序
#include<stdio.h>
int main(){
int minute;
double kilometre,money;
scanf("%lf %d",&kilometre,&minute);
if(kilometre<=3){
money=10+minute/5*2;
}
else if(kilometre>3&&kilometre<=10){
money=10+(kilometre-3)*2+minute/5*2;
}
else{
money=24+(kilometre-10)*3+minute/5*2;
}
printf("%.0f",money);
}
此题的正确解的程序运行顺序为:先判断是否为kilometre<=3,再判断是否>3且<=10,最后在判断>10的情况。
但是如果不同方法用if,会造成程序运行的不同,从而造成答案的不同。
如:用此正解的
if,else if,else 表达的是顺数顺序的判断(可以有范围重叠);
如果用 if,if,if 表达的是并列顺序的判断(且范围可以有重叠部分);
if(1) if(2) else,表达的是if(1)与if(2)为并列顺序,else表式if(2)(即最近的if)的例外情况(也可以有范围重叠)。
(f中表限制的符号间(& ||)要用()区分计算顺序与设定限制范围)