wswzh0329
2016-03-01 22:02
//问题:代码中两个for循环省略了第一个表达式之后运行结果很奇怪,程序的语句是怎么走的?
package homework;
//求出0-100中质数的个数
public class IsZhiShu {
public static void main(String[] args) {
// TODO Auto-generated method stub
//声明两个变量zishu和sushu,分别代表质数和素数的个数
int zishu = 0;
int sushu = 0;
//i指代2-100的数,这里的i,j提出来是为了增大访问范围,后面输出是能访问到i
int i =2;
int j=2;
//遍历2-100的数
for(;i<=100;i++) //????????????
{
//判断是否能被整除
for(;j<i;j++) //???????????
{
//如果能被1和本身以外的数整除,则为质数,且zishu+1;
if(i%j==0)
{
System.out.println(i+"是质数");
zishu ++;
break;
}
}
//进行判断,如果跳出循环时j==i,则说明不存在能整除的数,是素数,sushu+1
if(j==i)
{
System.out.println(i+"是素数");
sushu++;
}
}
System.out.println("质数有"+zishu+"个");
System.out.println("素数有"+sushu+"个");
}
}
二:你的循环中,内层循环执行完成后, j++ 会再执行一次。
那么你下边判断‘素数’的条件就永远都是不相等的。
你的代码没有注释。。
Java入门第一季(IDEA工具)升级版
1165172 学习 · 17581 问题
相似问题