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 % 2always 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循环除以二的主要内容,如果未能解决你的问题,请参考以下文章

Java 流程控制

java中的循环 while

JAVA大数据的第六天——while循环do-while循环以及for循环

Java

while循环结构的语法和执行顺序是啥?

java中的循环--while循环结构