这段程序运行后的结果是*7,可是if不是必须和else成对出现么?想知道这个程序是怎么运行的

#include<stio.h>main(){inti=5;do{if(i%3==1)if(i%5==2){printf("*%d",i);break;}i++;}whi... #include<stio.h>
main()
{int i=5;
do
{if(i%3==1)
if(i%5==2)
{printf("*%d",i);break;}
i++;}while(i!=0);
printf("\n");
}初始条件i=5,可是不符合第一个if条件,i++是第一个if下的,else不是不执行?
展开
 我来答
百度网友6eab688
2012-08-25 · TA获得超过4691个赞
知道大有可为答主
回答量:962
采纳率:50%
帮助的人:945万
展开全部
把你的程序按锯齿风格排列后,可以看到各层敬猛关系亮搏桥
#include<stio.h>
void main()
{
int i=5;
do {
if(i%3==1) // 这里 if 后面没有{},那属于条件执行的就一个语句
if(i%5==2) {
printf("*%d",i);break;
}
i++; // 这个已经不是if (i%3==1)的条件执行部分了,属于while的循环部分
}while(i!=0);
printf("\n");
}

if 可以没有 else,就是说条件满足运行条件执行部分的语句,然银皮后运行后面的语句,不满足条件直接运行后面的语句
更多追问追答
追问
请问i++为什么不能看成是if(i%5==2)的else的部分呢,这样的话i++不就是if (i%3==1)的条件执行部分了,麻烦了。。。
追答
必须这样写
if (i%5 == 2) {
printf(...);
break;
}
else // 必须要有这个关键字才算,否则不是
i++;
帐号已注销
2012-08-28 · TA获得超过312个赞
知道小有建树答主
回答量:472
采纳率:0%
帮助的人:201万
展开全部
不是有if就一定有else的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
焉霞答缎
2020-02-11 · TA获得超过3.5万个赞
知道大有可为答主
回答量:1.2万
采纳率:24%
帮助的人:1024万
展开全部
请问i
为族握什么不克不及算作是if(i%5==2)的else的部分呢如许的话誉皮i
不就是if
(i%3==1)的前提履行部分了麻烦了。。庆穗差。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式