对于几个if语句连在一起时的问题.

来源:百度知道 编辑:UC知道 时间:2024/06/29 01:06:02
问题一:
如下程序
if()…;
if()…;
else…;

当第一个if条件为假时,后面的if和else都不用执行了吗?为什么?

问题二:
如下程序
if()…;
if()…;
if()…;
几个if条件语句连在一起,当所有if条件都成立的时候,输出结果为最后一个if语句得到的结果.为什么会是这样呢?
哦,是的,我忘了, 假如是这样情况的话结论跟我的问题是一样的吗?

2楼的问下,比如有程序
if(1)x=3;
if(1)x=4;
printf("%d",x); 结果是4吧.意思是不是顺序执行,第一个if 条件成立,把3赋值给x,然后接下来第二个if成立,把4赋给x. 按顺序来最后是把4赋给了x.我这样理解没错吧?

你写的有问题吧
第一个
if()…;
if()…;
else…;

根据你的描述,应该是这样
if()…
if()…;
else…;
第一个if后面是没有分号的
第二个问题也是,前两个应该没有分号

恩,跟你说的是一样的,第一个里面的if else是第一个if的子句,第一个if不成立是不会往下执行的

第二个顺着逻辑来就是了

恩,程序都是这样,顺着程序走肯定没错的,考试的时候的读程序题,都是这样做

问题一:
第一个if条件不影响后面的if-else语句的执行

问题二:
几条if语句彼此没有影响

// 以上的前题是后面的if语句没有用到前面if语句中的计算值作为逻辑表达式

// 对,顺着逻辑顺序往下执行就是了。。

问题一: 不知道你判断的条件是什么?
尝试改成 if(){}else{ if(){}else{if(){}else{}}}

问题二:
程序是顺序执行的,比如
int a = 5
if(a>1){cout<<"OK1"}
if(a>2){cout<<"OK2"}
if(a>3){cout<<"OK3"}
if(a>4){cout<<"OK4"}
判断条件是一样的,当然只得到最后一个的结果。。

====================================================================

进来一看,居然补充了。呵呵。

如你补充中的理解一样。 终于领悟了,呵呵 恭喜你。。

执行到最后一个了就当然是输出最后一个了,你把每一个if都输出一下。