2 zyf4005 zyf4005 于 2016.04.10 10:51 提问

为啥会死循环?求大神解答

// 1到100之间7的倍数的个数,并打印。

class dayin2
{
public static void main(String []args)
{
int sum=0;
for (int i=1; i<101 ;i++ )
{
for (;i%7==0 ; )
{
sum++;
}

   }
   System.out.println("1到100之间7的倍数的个数为"+sum);

}

}

4个回答

qq423399099
qq423399099   Ds   Rxr 2016.04.10 11:01
已采纳

如果是for (;i%7==0 ; )那么当i循环到7的时候那么此时i%7等于0了,然后会进入循环执行sum++
由于此时for的第三个语句是空,那么又会判断i%7==0,此时又符合,又进入了for循环,sum++,就陷入死循环了
所以要改为if(i%7==0){sum++;}

zyf4005
zyf4005 亲,谢谢了
2 年多之前 回复
u012094400
u012094400   2016.04.10 10:55

class dayin2
{
public static void main(String []args)
{
int sum=0;
for (int i=1; i<101 ;i++ )
{
if(i%7==0)
{
sum++;
}
}
System.out.println("1到100之间7的倍数的个数为"+sum);
}
}

u012094400
u012094400 回复zyf4005: 那样写都没有跳出循环的条件啊
2 年多之前 回复
drowned_ants
drowned_ants 回复zyf4005: 可以的,但是满足条件为真实现sum自加后要跳出循环才可以,解决方案参考我下面的回答
2 年多之前 回复
zyf4005
zyf4005 亲,for (;i%7==0 ; )为啥就不行了呢?
2 年多之前 回复
liyi_303
liyi_303   2016.04.10 10:58

for (;i%7==0 ; )
{
sum++;
}
改为:
if(i%7==0)
{
sum++;
}

drowned_ants
drowned_ants   2016.04.10 11:15

for(;i%7==0;)
{
sum++;
}
可以拆解等价如下:
while(i%7==0){
sum++;
}
当i=7,上式为真,sum自加,陷入死循环,解决此问题一种方案可以如楼上所述,也可以直接在sum++后加个break跳出循环

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
vs2010+opencv2.4.9运行时候出现问题?求助各位
参考书目是OpenCV3 编程入门 程序是: # include using namespace cv; int main () { VideoCapture capture("1.avi"); while (1) { Mat frame; capture>>frame; imshow("reading video", frame); waitKey(60000);
求大神解答!
我是个小白,最近一直在研究怎样上谷歌,都快要哭了!哪位大佬给解答一下,现在怎么翻墙啊!
新员工求大神解答
-
问题求大神解答
求大神解答,还在加班
求大神解答
设计一个方法, 根据下面的条件算出这个人生于何年,死于何年?(需要写出计算过程)  1、他生于19世纪,也同样死于19世纪(19世纪表示的是18XX年); 2、他诞生的年份和逝世的年份都是由4个相同的数字组成,但排列的位置不同;3、他诞生的那一年,4个数字之和是14; 4、他逝世那一年的数字的十位数是个位数的4倍。...
并发的HashMap为什么会引起死循环?
今天研读Java并发容器和框架时,看到为什么要使用ConcurrentHashMap时,其中有一个原因是:线程不安全的HashMap, HashMap在并发执行put操作时会引起死循环,是因为多线程会导致HashMap的Entry链表形成环形数据结构,查找时会陷入死循环。纠起原因看了其他的博客,都比较抽象,所以这里以图形的方式展示一下,希望支持! (1)当往HashMap中添加元素时,会
易语言钓鱼源码
求大神买走 求大神买走 易语言钓鱼源码
为什么死循环占用CPU高
文章出处:http://bbs.chinaunix.net/thread-1613560-1-1.html   为什么死循环占用CPU高 一个进程如果是死循环,那么占有的CPU会很高,可是操作系统时间片运行的,到了一定时间不是会自动切换到别的进程吗?即便是死循环,到时间还是
IOS界大神
王巍:https://onevcat.com/#blog  王巍(喵神), 现居日本, 就职于 LINE, 知名 iOS 开发者, 写的文章大多深入浅出, 内容广泛, 目前在维护的 Swifter 也值得收藏。 唐巧的技术博客:http://blog.devtang.com/   唐巧, 国内知名 iOS 开发者, 现就职于猿题库, 博客推出的 iOS 移动开发周报很受欢迎, 更新频
64位机子,vs2010配置opencv2.4.9遇到问题解决
最近换了64位的主机,准备把之前做过的程序都整理一下,然后之前