一道看似很简单的题目

moxing321 2010-04-12 09:40:17
#include<stdio.h>
int main()
{
int i=0;
if(0==i)
{
printf("%d\n",i);
i=1;
}
/*下面也可以只写else*/
else if(0!=i)
{
printf("%d\n",i);
}
return 0;
}
为什么else之后的语句不会执行,我不是修改了i的值了吗???
...全文
70 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
天亮后说晚安 2010-04-13
  • 打赏
  • 举报
回复
if
else
只执行其中的一个。
ameyume 2010-04-12
  • 打赏
  • 举报
回复
楼主有点绕进去了
cy330206 2010-04-12
  • 打赏
  • 举报
回复
这个就是语法,,呵呵
cy330206 2010-04-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 moxing321 的回复:]
呵呵,楼上的意思就好像是跟&&语句一样,如果&&左边的表达式是假,右边就不会执行。
这里if如果为真的话,else语句就不会检查一样。
不知道是不是这样???
[/Quote]
是的,但是不是楼主所说的短路求法
moxing321 2010-04-12
  • 打赏
  • 举报
回复
呵呵,楼上的意思就好像是跟&&语句一样,如果&&左边的表达式是假,右边就不会执行。
这里if如果为真的话,else语句就不会检查一样。
不知道是不是这样???
baihacker 2010-04-12
  • 打赏
  • 举报
回复
这里只是在遇到if (0==i)的时候判断一下进不进入第一个{},否则就判断一下i是不是非零再决定进不进入第二个{}
你是在第一个{}内改变了i的值,就像时间流逝一样,你不能反回去再重新选择,而是乖乖地把流程走完,也就是把第一个{}结束完,然后执行return 0;
「已注销」 2010-04-12
  • 打赏
  • 举报
回复
if
else
只执行其中的一个。
huanmie_09 2010-04-12
  • 打赏
  • 举报
回复
楼主好好看看if..else复合语句吧。
if..else if..else..只执行条件满足所对应的语句.
下面楼主自己体会体会.
if(0==i)
{
printf("%d\n",i);
i=1;
}
if(0==i)
{
printf("%d\n",i);
i=1;
}
/*下面也可以只写else*/
else if(0!=i)
{
printf("%d\n",i);
}

69,370

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧