C语言 if语句条件的嵌套???

#include "reg51.h"
sbit K1=P3^2;
sbit K2=P3^3;
void main()
{
for(;;)
{
P3|=0x3c; /*将P3.2~P3.5位置高电平*/
if(!K1&!K2) /*判断K1与K2是否同时按下*/
P1=0; /*同时按下,灯就全亮*/

else if(!K2,K1)/*断开 K1*/
P1=0xff; /*灯全灭*/

}
}

谁能告诉我 else if(!K2,K1) if有这种格式吗?解释下是什么意思!!!

这个程序,我仿真试过,满足要求运行!!!!

急。。。。 知道的解释下。谢谢。。。。

有,就是逗号表达式

定义如下:
逗号表达式

c语言提供一种特殊的运算符,逗号运算符,优先级别最低,它将两式联接起来,如:3+5,6+8称为逗号表达式,其求解过程先表达示1,后表达示2,整个表达示值是表达示2的值,如:3+5,6+8的值是14。a=3*5,a*4的值是60
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-11-17
if(x>=0)
{
if(x<10)
{y=(double)sin((double)x);printf("y=%f",y);}
else
if(x<20)
{
}
esle
if(x<30)
{
}
else
if(x<40)
{
}
}
里面很多我就不写了,只是要记得在if和else
if和else以后加用大括号括起来,
从开始要养成好的代码习惯从加大括号开始
求采纳,求经验,求悬赏
自己写的不容易
第2个回答  2010-03-17
if(!K2,K1) 的意思就是k2按下,k1断开

(!K2,K1) 这个是逗号表达式,具体你可以看看逗号表达式的相关章节。
第3个回答  2010-03-17
你到底是对if中的条件不懂还是else if不明白呀。这个if中的条件是逗号运算符。逗号运算符的规则可以在书上找到,我不想讲。
如果是else if的话可以给你说一下。
if的格式是这样的
if(...){...} //首先判断这个if,若满足就执行后面的语句,然后就不执行后面的else if和else语句了。如果不满足就执行下面的第一个else if
else if(...){...} //若if不满足条件,则判断else if中的条件,若满足就执行后面的语句,然后就不执行后面的else if和else了,如果满足条件就执行下面的一个else if
else if(...){...} //若上一个else if和if的条件都不满足,则判断这个else if中的条件,若满足则执行后面大括号的语句,然后就不执行后面的else if和else语句了。若不满足继续执行下一个else if
....
else {...} //若以上所有的if和else if的条件都不能满足要求,则执行这个语句。
相似回答