int x=1,y=0; if(!x)y++; else if(x==0) if(x)y+=2; else y+=3;

这段程序是什么意思

在java中这个if(!x)应该是错了吧,整型变量好像不能做判断。
不过在C和C++中可以,在if(!x)这句判断时为假,所以y++并不执行。
然后进行if(x==0)判断,因为x=1值并没有发生改变,
而if(x)y+=2; else y+=3;都是包括在if(x==0)的判断条件里的,
所以之后的if(x)y+=2; else y+=3;都不执行。
最后的x,y的值仍然是x=1,y=0
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-01-17
int x=1,y=0; //定义并初始化x,y
if(!x) y++; /*如果!x为真,即x是0时就执行y++。注:非0即为真,0就是假。*/
else if(x==0) /*否则,如果x等于0就执行下面一行,但x是1就不执行下面一行,直接转到下边的else语句。*/
if(x) y+=2; /*虽然不执行,说说也无访。如果x为真(非0即为真),就执行y+=2,相当于y=y+2 */
else y+=3; /*否则就执行y+=3 */
第2个回答  2012-01-17
这段程序除了是if-else条件控件结构外,只用到了一个知识点:逻辑值和非逻辑值之间的转换。
在C和C++中,逻辑真是用非零值来表示的,逻辑假是用零来表示的。
非零值会被看成逻辑真,零会被看成逻辑假。
逻辑真转成整数时会转成1,逻辑假转成整数时会转成0

所以if(!x)相当于if(x==0)
if(x)相当于if(x!=0)
其他的应该不难理解吧。
第3个回答  2012-01-17
啥意思都没得,最终x=1,y=0.
if(!x)为假,走else语句
在else语句中,先进行if判断,x==0 为假,下面的if..else语句是它的执行体,所以它为假时,直接就跳过了下面的if...else语句,直接到末尾。最终x和y的值都没改变
第4个回答  2012-01-17
int x=1,y=0;
if(!x)
{// A
y++;
}
else if(x==0)
{// B
if(x)
{// C
y+=2;
}
else
{// D
y+=3;
}
}
// E

x初值为1,!x就为假,进入第一个else; x==0为假直接结束到E

int x=1,y=0; if(!x)y++; else if(x==0) if(x)y+=2; else y+=3;_百度...
不过在C和C++中可以,在if(!x)这句判断时为假,所以y++并不执行。然后进行if(x==0)判断,因为x=1值并没有发生改变,而if(x)y+=2; else y+=3;都是包括在if(x==0)的判断条件里的,所以之后的if(x)y+=2; else y+=3;都不执行。最后的x,y的值仍然是x=1,y=0 ...

{int x=1,y=0; if(!x) y++; else if(x==0) if(x) y+=2; else y+=3...
int main(){ int x=1,y=0;if(!x)y++; \/\/这里是对x≠0时的处理。else if(x==0); \/\/这里应有对于x=0时的处理。就是这里缺少相应的处理语句,如不处理,也应加;表示不处理 if(x) y+=2; \/\/这是对x=1时的处理。else y+=3; \/\/这是对x≠0,x≠1时的处理。printf...

int X=1, y=0;if(!x) y++; else if(x==0) if(
输入0.这个代码你可以这样看 if (!x) y=0;else if (x == 0) if (x) y+=2; else y+=3;这样你应该懂了,不懂再问

...main( {int x=1,y=0; if(!x)y++; else if(x==0)
结果是0;x=1,!x为false 所以再判断x==0也不成立故y=0 else if (x==0)if (x) y+=2;else y+=3;和 else if (x==0){ if (x) y+=2;else y+=3;} 是一样的意思

c语言if-else循环问题
if(x)括号里面相当于布尔型变量,1为真,0为假。真,执行if;假,执行else。main()int x=1,y=0; if (!x) y++; \/\/!x=0,这里不做y++,直接跳下步elseelse if (x==) \/\/(x==??)这个不懂,当不存在吧。。if(x) y+=2; \/\/执行y+=2else y+=3;printf("%d",y...

c语言 结果为0怎么算的
程序太乱了,写的标准一点,得到答案很容易 int x=1,y=0;if(!x) \/\/不满足!x为真,不进入该分支{ y++;}else{ if(x==0) \/\/x不为0,不进入该分支 { if(x) { y+=2; \/\/这里看不懂你写的,不过不影响结果 } else { y+=3; \/\/这里...

C语言题目
{ int x=1,y=0; if(x == 0) \/\/不满足条件跳过 y++; else if(x == 0) \/\/不满足条件跳过 { if(x != 0) y = y+2; else y = y+3; } printf("%d\\n", y); \/\/直接输出y,y实际什么也没做还是0.} ...

...运行后的输出结果是if(!x!=0) y++; else if(x==0)应该怎么写呢_百度...
条件语句的书写,要看你表达什么逻辑关系。假定是:如果 {非x 不等于 0 则 y++;} 否则 { 如果 x 等于 0 则 y=y+2; 不然 则 y=y+3;} 写成:if ( !x != 0) y++;else { if(x==0) y+=2; else y+=3;};多加一对花括号,读起来易懂。

C语言中If(!x) y ++; 什么意思、特别是iF(!x)
if(x==y)是判断x与y是否相等,相等则为真,不等则为假 if(x=y)这个是把y的值赋给x,然后判断表达式x=y的值,C语言中,赋值表达式是有值的,它的值是赋值符号右边的值,即x=y的值是y的值,如果y的值为0,那么x=y为假,否则为真 一般来讲,编程过程中if(x=y)这种写法是错误的写法,...

if(!x)y++什么意思
if()...括号里面的值是非零的时候,执行后面的语句,即y++...等价为y=y+1 本题中只有在x=0的时候,才执行后面的

相似回答