在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个数(如下图)这是怎么回事呢
我试了一下,去掉continue就正常了,但for循环里面我也加了continue(结果显示正常),这是怎么回事哦
用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
感谢大哥的分分
你这里写一个这样的小题,有点画蛇添足
懂了自然好,不懂始终是个疑问,哈哈