需要从伪代码编写一个java程序,我已经编写了一些代码,它没有工作,我不确定我是否正确完成它,因为我只是试图遵循伪代码 -
将i设为i / 2
import java.util.Scanner;
import java.util.Scanner;
public class InputLoop
{
public static void main(String[] args)
{
int i = 0;
Scanner scan = new Scanner(System.in);
System.out.println("Enter an integer");
while (!scan.hasNextInt()) // while non-integers are present
{
scan.next();
System.out.println ("Bad input. Enter an integer.");
}
while (i>0) // while greater than 0
{
int input = scan.nextInt();
System.out.println (i%2);
i = (i/2);
}
}
}
答案 0 :(得分:3)
怎么样:
System.out.println(Integer.toBinaryString(i));
答案 1 :(得分:3)
坦率地说,你didn't
(早先想念它)完全遵循伪代码。伪代码会告诉您read i
,而您正在阅读input
。这是一个问题。
第二个问题是,您应该读取while
循环外的输入,您正在使用输入进行处理。这是你没有遵循的第二件事。
目前你的while循环是: -
while (i>0) // while greater than 0
{
int input = scan.nextInt();
System.out.println (i%2);
i = (i/2);
}
在您不想要的每次迭代中,都会从用户读取input
。
因此,您需要稍微修改一下代码: -
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
}
答案 2 :(得分:0)
伪代码首先读取(在循环外部),但在您的代码中读取第二个(在循环内)