java中的while循环除以二
Posted
技术标签:
【中文标题】java中的while循环除以二【英文标题】:Divide by two while loop in java 【发布时间】:2015-11-18 17:35:12 【问题描述】:我想要做的是使用 while 循环来检查 userNum % 2 > 1 一旦它达到一个我希望它停止并打印出除法的所有值,例如
如果 20 是它会生成的用户编号。 20 / 2 和 10/ 2 和 5/2 然后 2/2 导致 1 然后停止 (整数除法)
import java.util.Scanner;
public class DivideByTwoLoop
public static void main (String [] args)
int userNum = 0;
userNum = 20;
while ( (userNum % 2) > 1)
userNum = userNum / 2;
System.out.println(userNum );
System.out.println("");
return;
这就是我目前所拥有的。 任何帮助是极大的赞赏。
【问题讨论】:
你的问题到底是什么?%
是模数而不是除法,即/
【参考方案1】:
userNum % 2
是 always 1 或 0,因此 while
-loop 的条件永远不会为真。条件应该是userNum > 1
而不是(userNum % 2) > 1
。
【讨论】:
感谢您的回复,我现在的问题是,虽然我的预期输出是 20 10 5 2 1. 我得到 20 10 4 2. 出于某种原因。我已将循环更改为 While (userNum >1) userNum = userNum /2 System.out.print(userNum); @Ibrahim 我已经测试了代码。对我来说很好用(输出中缺少 20 个除外)。问题中的代码是完整的示例吗? 是的,但是谢谢,在我回复并让它工作后,我实际上最终修改了它,不过感谢您的帮助!以上是关于java中的while循环除以二的主要内容,如果未能解决你的问题,请参考以下文章