在10个随机整数求能被5整除的整数的个数,咋弄好?

package study;
/**
 * 
 * @author 黑大帅
 * @date 2020.1.17
 * 实现功能:10个随机整数中能被5整除的个数
 */

public class Study {
public static void main(String args[]) {

//for循环
/*
int count=0,num=0;
for(int i=1;i<=10;i++) {
num =(int)(Math.random()*100);
if(num%5==0) {
count++;
continue;
}
System.out.println("整数"+num+"不能被5整除");
}
System.out.println("能被数字5整除的整数个数为:"+count+"个");
*/


//while循环
int count = 0,i=1;
int num =0;
while(i<10) {
num = (int)(Math.random()*10);
if(num%5==0) {
count++;
System.out.println("能被数字5整除的整数为:"+num);
continue;
}else {
System.out.println("整数"+num+"不能被5整除");
}
i++;
}

System.out.println("能被数字5整除的整数个数为:"+count+"个");

问题描述:我只写了i=1,i<=10,应该为10个数,结果超出了10个数(如下图)这是怎么回事呢

在10个随机整数求能被5整除的整数的个数,咋弄好?

我试了一下,去掉continue就正常了,但for循环里面我也加了continue(结果显示正常),这是怎么回事哦在10个随机整数求能被5整除的整数的个数,咋弄好?在10个随机整数求能被5整除的整数的个数,咋弄好?

用while时,continue就会跳过执行I++,所以循环次数不对

去掉continue就行了,借着这个题,我想问一下大佬们:什么场合实用continue啊,这个场合不行吗

continue 代表本次循环后面的代码不需要执行了,你说什么场合适用?

continue是结束本次循环(后面的代码不再执行),直接进入下一次循环。适用场合就是结束本次循环时,lrc歌词下载后续的代码不对程序控制造成影响,也就是后续 的代码没必要执行,需要尽快进行一下循环,提高循环效率。你的这个场合,因为后续的代码有i的计数器,是对循环控制造成影响的。所以要么就不 continue,要么就在continue前做好循环控制,即把i++放到continue之前。

int count = 0,i=0;//因为i提前计数,所以初始值为0
int num =0;
while(i<10) {
i++;
num = (int)(Math.random()*10);
if(num%5==0) {
count++;
System.out.println("能被数字5整除的整数为:"+num);
continue;
}
//else { //这里可以不要,注释掉
System.out.println("整数"+num+"不能被5整除");
//} //这里可以不要,注释掉
//i++;//这里方法continue之前
}

受教了,感谢大佬的认真传授

那还不尽快结贴

哈哈,这不在等你嘛,你来了就结帖

在有自增过程的情况下,尽量不要使用while,应该使用for,容易出bug

感谢大哥的分分

你这里写一个这样的小题,有点画蛇添足

懂了自然好,不懂始终是个疑问,哈哈