zyf4005
zyf4005
采纳率78.3%
2016-04-10 02: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 小灸舞 5年前

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

    点赞 1 评论 复制链接分享
  • drowned_ants drowned_ants 5年前

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

    点赞 1 评论 复制链接分享
  • liyi_303 liyi_303 5年前

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

    点赞 1 评论 复制链接分享
  • u012094400 愈来愈好 5年前

    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);
    }
    }

    点赞 1 评论 复制链接分享

相关推荐