java代码求教

来源:百度知道 编辑:UC知道 时间:2024/06/27 08:01:23
定义number是boolean类型。
求教 if (! number) continue; 跟 if (nm == false) continue;输出效果为什么是不一样的(左正右错),虽然我感觉理解起来是一样的逻辑~~
我的源代码是
public class primenumber {
public static void main (String args[]) {
for (int i = 101;i < 200;i += 2) {
boolean nm = true;
for (int j = 2;j < i;j++) {
if (i % j == 0) {
nm = false;
break;
}
}

if (nm == false) continue;

System.out.print(i + " ");
}
}
}

这是求101至200的所欲质数
而输出结果却是101 103 105 107 109 111 113 115 117 119 (以此类推)181 183 185 187 189 191 193 195 197 199
规律是每个各位都是 1 3 5 7 9 的循环
我知道是 if (nm == false) continue; 这句话的原因,但不知道它的逻辑是什么样的 谢谢
第二天开机后 又重新运行了下 上面的那个有问题的代码 即if (nm == false) continue;
发现输出又是正确的 这是为什么 晕倒类~~

if (i % j == 0) {
nm = false;
break;
}
在这里跳过不是质数的数字,继续执行下面一轮的循环。
if (! number) continue; 跟 if (nm == false) continue;的逻辑相同。都是在number是false时要执行的方法。

不会的,如果nm的值为true那么 !nm 与num==false的含义是一样的,
但如果 nm的值为false 那么 !nm 与 num==false的含义则恰好相反

而且就你的代码来看,恰恰 nm==false这个表达才是正确的

if (! number) continue; 跟 if (nm == false) continue;
我不知道你那为什么会不一样。。。我这里是一样的。逻辑也是一样的。。运行了结果是一样的。。。。
不成你用的是山寨版的jdk?哈哈。开玩笑。

一楼正解

都对啊!