标题:为什么去掉“else break”就执行不了?
只看楼主
zhengzhihui
Rank: 2
来 自:汕头大学
等 级:论坛游民
帖 子:36
专家分:57
注 册:2009-7-4
结帖率:90%
已结贴  问题点数:3 回复次数:5 
为什么去掉“else break”就执行不了?
这是该问题的题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
 
代码如下:

#include<stdio.h>
void main()
{int n,i;
printf("\nPlease enter the number:\n");
scanf("%d",&n);
printf("%d=",n);
for(i=2;i<=n;i++)
  {
  while(n!=i)
    {
    if(n%i==0)
       {
         printf("%d*",i);
         n=n/i;
        }
      else break;          /*为什么这里要加上“else break”,去掉后就执行不了? 这就是我的问题*/    }
}
printf("%d",n);
getch();
}

[ 本帖最后由 zhengzhihui 于 2009-8-11 17:30 编辑 ]
搜索更多相关主题的帖子: else break 
2009-08-11 17:29
东海一鱼
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:48
帖 子:757
专家分:4760
注 册:2009-8-10
得分:2 
if(n%i==0)        //如果能整除
{}
else break;   //否则,跳出while循环,这里注释掉,就死循环了。   

举世而誉之而不加劝,举世而非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。彼其于世未数数然也。
2009-08-11 17:47
libingchen_2
Rank: 2
等 级:论坛游民
帖 子:22
专家分:62
注 册:2009-8-7
得分:1 
else break;退出当前while循环  否则一直成立  死循环。
2009-08-11 17:50
zhengzhihui
Rank: 2
来 自:汕头大学
等 级:论坛游民
帖 子:36
专家分:57
注 册:2009-7-4
得分:0 
必须要结束while循环。
二三楼的解释很对,明白了。
2009-08-11 18:55
xdyuan33
Rank: 3Rank: 3
来 自:广西大学化工学院
等 级:论坛游侠
帖 子:146
专家分:145
注 册:2009-7-24
得分:0 
路过学习中

参与切磋是美德,每天回帖即可获得10分可用分!
2009-08-11 19:17
soky
Rank: 4
等 级:业余侠客
帖 子:126
专家分:228
注 册:2009-7-13
得分:0 
少个括号,检查下
2009-08-12 00:13



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-282284-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.891413 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved