ломать; линия недоступна

Строка userAge;

    while(true){
        System.out.println("Enter user Age");
        userAge = scInput.nextLine();
            if(tryParseInt(userAge)){
             return userInfo[row][1] = userAge;
             break;
            }else{
                System.out.println("Please Enter an integer.");
                }
    }

Новичок здесь, зовут Рейган.

Моя проблема в том, что мой код не компилируется из-за "break;". Пишет, что это недостижимый код. Я чувствую, что делаю что-то не так, и я почти уверен, что это связано с типом переменной... не знаю, как это сделать. Это из метода, который требует возраста пользователей.

Моя цель — передать строку через мой метод tryParseInt(), чтобы проверить и убедиться, что входные данные являются целыми числами, но сохранить их как переменную строкового типа.

Я создаю многомерный массив строк для хранения пользовательских данных. т.е. Имя; возраст; расположение.


person Reagan B    schedule 25.03.2013    source источник


Ответы (2)


Оператор break после оператора return недоступен, поскольку функция завершает работу до того, как будет достигнут оператор break. Удалите break;, и ваш код должен скомпилироваться.

person Aniket Inge    schedule 25.03.2013
comment
Я убрал разрыв. Код работает, однако он проходит весь цикл перед проверкой моего состояния. В идеале я хотел бы, чтобы он отображал оператор else, если мое условие ложно. - person Reagan B; 25.03.2013
comment
Если вы хотите снова зациклить свои условия, не используйте оператор return или break в цикле. И когда в следующий раз программа запросит ввод, введите несколько символов, и вы должны увидеть, что ваше условие else выполняется. Но помните, удаление break или return в этом цикле делает его бесконечным! - person Himanshu Bhardwaj; 25.03.2013

Оцените ввод, является ли он целым числом:

Scanner scanner = new Scanner(System.in);
try {
    userInfo[row][1] = scanner.nextInt());
    return;
} catch (InputMismatchException e) {
    System.out.println("Please enter a integer.");
}
finally{
    scanner.close();
}

и в вашем коде разбейте предложение после возвращаемого предложения, чтобы оно было недоступно.

person Scy    schedule 25.03.2013