// 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);
}
}
如果是for (;i%7==0 ; )那么当i循环到7的时候那么此时i%7等于0了,然后会进入循环执行sum++
由于此时for的第三个语句是空,那么又会判断i%7==0,此时又符合,又进入了for循环,sum++,就陷入死循环了
所以要改为if(i%7==0){sum++;}
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);
}
}
for (;i%7==0 ; )
{
sum++;
}
改为:
if(i%7==0)
{
sum++;
}
for(;i%7==0;)
{
sum++;
}
可以拆解等价如下:
while(i%7==0){
sum++;
}
当i=7,上式为真,sum自加,陷入死循环,解决此问题一种方案可以如楼上所述,也可以直接在sum++后加个break跳出循环