Я должен создать двоичный преобразователь в десятичное число для назначения.Есть ограничения на это назначение.Это: 1.Нет бесконечных циклов 2.Представления Break для выхода из цикла 3.Нет меток или операторов перехода 4.Не используя Integer.parseInt (String s, int radix)
Я получил преобразование детали вниз, но у меня возникли проблемы с обработкой исключений.Я пытаюсь отобразить сообщение об ошибке, когда ввод не является двоичным, и продолжаю разрешать пользователю ввод, отображая одно и то же сообщение об ошибке при каждой недопустимой попытке.
Я пытался заменить цикл for на while и doВ то время как петли, но это оказалось слишком запутанным для меня.
Я также пытался вложить оператор if в цикл for, но не смог понять, как реализовать userInput, чтобы пользователь продолжал вводить данные после появления сообщения об ошибке.
long binaryNumber = 0, baseTen = 0;
String userInput;
int i;
boolean okay;
//Asks user to input binary number
System.out.println("Enter a binary number.");
userInput = in.nextLine();
for (i = 0; i <= userInput.length() - 1; i++) {
char digit = userInput.charAt(i);
//Checks if characters other than 1 or 0 is present
if ((digit != '1') || (digit != '0') {
System.err.println("Try again");
okay = false;
}
//Converts binary to decimal
if (digit == '1') {
binaryNumber += Math.pow(2, (userInput.length() - i)) / 2;
okay = true;
} else if (digit == '0') {
binaryNumber += 0;
okay = true;
}