对于c语言中条件判断语句的疑惑

if语句的格式:if(条件)执行1;如果条件为真,就执行1,如果为假,就跳过接着执行,那我写语句不如:
if(条件1)执行1;if(条件2)执行2;if(条件3)执行3;执行4
我干嘛还要用else或else if语句?
if-else语句, 里面的判断语句只执行一遍, 如果只是简单的判断没有任何问题, 如果是类似于if(i++<10)这样的语句, 你用什么来当下一个if的判断语句?
同时, if-else也决定了一系列条件出现时候的优先级问题, 假如,有条件1, 条件2, 条件3......他们桐伏斗的优先级依次降低, 那么用if(条件1){...}else if(条件2){...}else if(条件3){...}......只要当条件1满足时候就不用执行条件2满足的语句, 如厅罩果用if(){} if(){} 的局磨语句, 就会依次执行;
直观点可以用strcmp函数,如果想用直接用==或渣顷野!=来判断,你要先把汉字换成一个unsigned
short型,要比较的汉字也放如喊入一个unsigned
short型,就可以用==或!=判断:
例如unsigned
short
a=0xd6d0;
//乎肆0xd6d0表示"中"字,
if(a==0xd6d0)
printf(“这是中字");
你比较一下就知道了:
第一种
如果条件1,就执行1,否则如果条件2,就执行2,否则如果帆肆条件3,就执行3
第二种
如果条件1,就执行1. 如果条件2,就执行2,。如果条件3,就执行3.

区别在哪里?
第一种并不一定会判断条件2和条件3的,只有前面的态埋轿条件不满足才判断
第二种所有条件都会被判断一次。

这只是一个例子,虽然液大只是一条if else指令,其实用起来还是有很多细节的。

嗯,可用可不用。


if (grade >= 80)
puts("优秀"模唤握);
else if (grade >= 60)
puts("及格");

或者

if (grade >= 80)
puts("优秀");
if (grade < 80 && grade >= 60)
puts("及格");

逻辑上都可以!

但后一种判断次数多了旦庆,效率稍低,也可以忽略链闭。


采用else 是如果条件都不成立才输出 虽然也能通过if来实现 但有时候会很麻烦 会让程序变的复杂化

采用 else if 就前备是在举高eise if 中你正悔尺只能采用一个 满足这个条件之后就跳出else if 不会再执行。也是为了简化程序