打破;线无法到达

时间:2013-03-25 02:28:10

标签: java while-loop unreachable-code

String 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()方法传递一个字符串来测试并确保输入数据是一个整数,但是将它保存为字符串类型变量。

我正在创建一个多维String数组来存储用户的数据。即名称;年龄;位置。

3 个答案:

答案 0 :(得分:10)

break语句无法访问后的

return语句,因为该函数在到达break语句之前退出。删除break;,您的代码应该编译。

答案 1 :(得分:0)

while(true){
        System.out.println("Enter user Age");
        userAge = scInput.nextLine();
            if(tryParseInt(userAge)){
             return userInfo[row][1] = userAge;
             //you don't need break here because return at above line will make function to exit - break the loop
             //break; 
            }else{
                System.out.println("Please Enter an integer.");
                }
    }

答案 2 :(得分:0)

判断输入是否为整数:

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();
}

并在你的代码中,在返回句子后断句,因此无法访问。