求c++高手解答以下题目:(PS: if(a), if(!x), if(y)这几个是什么意思啊? )

#include<stdio.h>
void main()
{
int a=50,b=20,c=10;
int x=5,y=0;
if(a)
if(b!=10)
if(!x)
x=1;
else
if(y)
x=10;
x=-9;
printf("%d",x);
getch();
}

if(a) //条件判断语句,非0即为1(1就是出了0以外任何数,是1就成立,继续往下执行,否则跳到else),a=50不是0就继续执行下一条语句,条件判断为 ture。
if(b!=10) // b=20不等于10,条件判断为 ture,继续执行下一条语句。
if(!x) //x=5,非0 , 条件不成立,跳转到else。
x=1;
else
if(y)//y=0,条件不成立false,跳到下一句

x=10; //不执行
x=-9; //执行
结果输出 -9 。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-04
帮你执行了下代码,给你解释下代码的全过程吧(这是c语言的代码)
#include<stdio.h>
void main()
{
int a=50,b=20,c=10;
int x=5,y=0;
if(a)
if(b!=10)
if(!x) /*三个if语句的意思相当于:当a为真(即a不小于等于零)且b不等于10且(!x)为真*/
x=1;
else
if(y)
x=10;
x=-9;
printf("%d",x);
getch();
}
先理解if语句的括号里都是些条件,满足时执行if下的语句,不满足时跳到else
改程序的最后面的getch();不要加上去,不然运行不了
第2个回答  2011-06-05
if(条件),条件成立在程序中就是代码1,条件不成立就是代码0,
if(a),如果a为零,则表示否(0)的意思,如果a为非零的数则表示是(1)的意思;
!x等价于a,"!”表示非得意思,就是当x为零时,!x就表示其为非零值·····
y 的分析跟a 一样·····
第3个回答  2011-06-04
if(a)是if(a!=0)的简写。if(y)同理。if(!x) 因为x=5非零,所以!x为零,所以if(!x)下面一句不会执行,直接跳到else。
PS:本人C++只懂基础,很菜。 另外,你这个是C语言,不是C++的。追问

不好意思的说,我也很菜。。。谢谢啊,呃,!x==0?所以x==0!=0不成立跳到else后?

相似回答