Prompting user to re-enter integers until binary number is entered
我是 JAVA 新手(顺便说一下计算机编程)。以下程序检查输入是否为二进制。它应该提示用户重新输入整数,直到输入二进制数。但是这个程序做的恰恰相反。
如果输入是二进制的,它要求我重新输入整数,并且当输入非二进制时程序终止。
我需要认真的帮助。这是我的输出
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | public static void main(String[] args) { int value, userValue; int binaryDigit = 0, notBinaryDigit = 0; Scanner scan = new Scanner(System.in); while (true) { System.out.println("Please enter positive integers:"); userValue = scan.nextInt(); value = userValue; while (userValue > 0) { if ((userValue % 10 == 0) || (userValue % 10 == 1)) { binaryDigit++; } else { notBinaryDigit++; } userValue = userValue / 10; } if (notBinaryDigit > 0) { System.out.println(value +" is a not a Binary Number."); break; } else { System.out.println(value +" is a Binary Number."); } } } |
答案可能为时已晚。但是如果使用该方法,代码可以大大简化。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | import java.util.Scanner; public class MainClass { public static void main(String[] args) { Scanner scan = new Scanner(System.in); while (true) { System.out.println("Please enter positive integers:"); int userValue = scan.nextInt(); if (isBinary(userValue)) { System.out.println(userValue +" is a Binary Number."); break; } else { System.out.println(userValue +" is a not Binary Number."); } } } public static boolean isBinary(int input) { while (input > 0) { if ((input % 10 != 0) && (input % 10 != 1)) { return false; } input = input / 10; } return true; } } |
更改您的代码
从此
1 2 3 4 5 6 7 |
到这个
1 2 3 4 5 6 7 8 |
它会询问值并判断它是否是二进制的,如果是二进制则终止
由于 Scanner 类而出现错误。
您可以运行您的程序并通过像这样删除 Scanner 类来检查您的逻辑。
公共类测试{
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | public static void main(String []args){ int value, userValue=34; int binaryDigit = 0, notBinaryDigit = 0; value = userValue; while (userValue > 0) { if ((userValue % 10 == 0) || (userValue % 10 == 1)) { binaryDigit++; } else { notBinaryDigit++; } userValue = userValue / 10; } if (notBinaryDigit > 0) { System.out.println(value +" is a not a Binary Number."); } else { System.out.println(value +" is a Binary Number."); } } |
}