求问一个while语句的循环问题

为什么我的线程在调用的时候只能循环一次,但是将num++放在if语句的下面就可以正常循环呢?


如上图所示: 在我看来, 当num=1 的时候, 在你这段代码里面的时候, 走进去了system.out.println代码块, 执行了num+1 ,也就是num = 2;
然后当你2进入while循环的时候, num % 2 即为 0 , 但是你为0的时候,没有system.out.println代码块, 导致num 无法 ++, 所以num值一直都是2;
综合下来说, 所有的while循环,全部都是num=2 的情况下循环的, 而且还是无限循环下去的。 唯一在控制台打印输出的system.out.println 内容, 只有第一次被执行。
打字不易, 若回答正确, 望采纳!谢谢!

num判断进不去,所以只输出一次

为什么判断进不去啊?

 

追加上一个回答内容, 你应该这样写:

if(num % 2 != 0){
   system.out.println(Thread.currentThread().getName() + "-->" + num);
}
   num++;

或者干脆直接if不要了:

system.out.println(Thread.currentThread().getName() + "-->" + num);
num++;

 

如果是要存在除数的条件,那就再增加一个else 条件做其他业务逻辑。