我的程序的目的是接收一个二进制数(1和0)作为输入,验证它是一个二进制数,否认输入,如果它不是二进制数并继续提示用户,直到他们输入一个二进制数,并且然后输出该二进制数中有多少个零和零。如何显示无效用户输入的错误消息?
下面是我遇到的问题:虽然我的程序确实输出了多少个1和0,但即使输入正确的二进制数,我的输出仍会显示“错误:不是二进制数”。例如,如果我的输入是10001,输出将是这样的 -
请输入一个二进制数。 二进制数中有2个。 二进制数有3个零。 错误:不是二进制数字。 请输入一个二进制数字。
我在代码中做了什么错误?
import java.util.Scanner;
public class NewClass
{
public static void main(String [] args)
{
Scanner scan = new Scanner(System.in);
int i = 0, count1 = 0, count0 = 0;
String number;
System.out.println("Please enter a binary number.");
number = scan.next();
String number1 = "1";
while ((i = number.indexOf(number1, i++)) != -1) {
count1++;
i += number1.length();
}
System.out.println("There are "+ count1 + " ones in the binary number.");
String number2 = "0";
while ((i = number.indexOf(number2, i++)) != -1) {
count0++;
i += number2.length();
}
System.out.println("There are "+ count0 + " zeros in the binary number.");
int total = (count1 + count0);
int length = number.length();
if (length != total);
{
System.out.println("ERROR: Not a binary number.");
System.out.println("Please enter a binary number.");
number = scan.next();
}
}
}
你能正确缩进和格式化这段代码吗? –
你为什么又问同样的问题? –
'if(length!= total);'根据@jordanGS应该没有分号 –