首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打印数字的二进制数字

打印数字的二进制数字
EN

Stack Overflow用户
提问于 2012-11-22 18:24:43
回答 3查看 3.8K关注 0票数 0

需要用伪代码编写一个java程序,我已经编写了一些代码,它不能工作,我不确定我是否做得对,因为我只是试图遵循伪代码-

  • 读我
  • 而我>0
  • 打印剩余的i%2
  • 将I设置为I/2 导入java.util.Scanner;导入java.util.Scanner;公共类InputLoop { public静态void (String[] args) { int i= 0;扫描器扫描=新扫描器(System.in);System.out.println (“输入整数”);main (!scan.hasNextInt()) // while非整数存在{ scan.next();System.out.println(“坏输入”)。输入整数.“;} while (i>0) // while大于0{ int input = scan.nextInt();System.out.println (i%2);i= (i/2);}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-11-22 18:29:08

坦率地说,您的didn't(啊,之前错过了)完全遵循伪代码。伪代码告诉您read i,而您正在读取input。这是个问题。

第二个问题是,您应该在处理输入的while循环之外读取输入。这是你第二次没注意到。

目前您的while循环是:-

代码语言:javascript
复制
    while (i>0) // while greater than 0
    {
        int input = scan.nextInt();
        System.out.println (i%2);
        i = (i/2);
    }

这是在您不想要的每次迭代中从用户处读取input

所以,您需要稍微修改一下代码:-

代码语言:javascript
复制
int i = scan.nextInt();  // Read input outside the while loop

while (i>0) // while greater than 0
{      
    System.out.println (i%2);
    i = i/2;   // You don't need a bracket here
}
票数 3
EN

Stack Overflow用户

发布于 2012-11-22 18:27:21

不如:

代码语言:javascript
复制
System.out.println(Integer.toBinaryString(i));
票数 3
EN

Stack Overflow用户

发布于 2012-11-22 18:27:33

伪代码首先读取(循环外),但在您的代码中读取第二个(循环内部)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13518265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档