第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