可以在方法中使用局部变量吗?

时间:2017-03-25 13:28:51

标签: java local-variables

我遇到了关于局部变量的问题。

以下不是我原来的代码,但我用一个简单的例子来表达我的问题:

import java.util.Scanner;
public static void main(String[] args) {
    Scanner userScan=new Scanner(System.in);    
    do{
        int input1=userScan.nextInt();
    }while(input1>10);
}

我的目的是让用户输入一个在我预期范围内的整数。 如果键入的数字不符合规则,我希望用户可以再次键入,直到它为止。然而,"输入1"是一个局部变量,因此它在while的表达式中无效。但我不希望用户再次重新输入整数。仅使用一个变量会更好。有没有人有关于它的建议或其他可以实现这个想法的方法? 谢谢!

3 个答案:

答案 0 :(得分:2)

    public static void main(String[] args) 
   {
        Scanner userScan=new Scanner(System.in);    
        int input1;
        do{
            input1=userScan.nextInt();
        }while(input1>10);
    }

只是在do while循环范围之外声明input1

答案 1 :(得分:1)

你为什么不这样做? :d Delcare在do ... while循环之外的input1,然后它可以在while语句中使用。

import java.util.Scanner;
    public static void main(String[] args) {
        Scanner userScan=new Scanner(System.in);  
        int input1 = 0;
        do{
            input1=userScan.nextInt();
        }while(input1>10);
    }

答案 2 :(得分:0)

问题在于您的input1变量范围,即input1变量的范围仅限于do while块(即{ }代码),所以只需在循环外声明变量。

int input1 = 0;//scope is now wider, not just limited to the loop
do {
   input1=userScan.nextInt();
} while(input1>10);