可以在方法之外使用局部变量吗?
Can a local variable be used out of a method?
我遇到了一个关于局部变量的问题。
以下不是我的原始代码,但我用一个简单的例子来表达我的问题:
import java.util.Scanner;
public static void main(String[] args) {
Scanner userScan=new Scanner(System.in);
do{
int input1=userScan.nextInt();
}while(input1>10);
}
我的目的是让用户输入一个在我预期范围内的整数。
如果输入的数字不符合规则,我希望用户可以重新输入,直到符合为止。但是,"input1"是一个局部变量,所以在while表达式中是无效的。但我不希望用户再次重新输入整数。只使用一个变量会更好。有没有人对此有建议或其他可以实现这个想法的方法?
谢谢!
public static void main(String[] args)
{
Scanner userScan=new Scanner(System.in);
int input1;
do{
input1=userScan.nextInt();
}while(input1>10);
}
只需在 do while 循环范围之外声明 input1
你为什么不这样做呢? :D
delcare input1在do...while循环外,可以在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);
}
问题出在您的 input1
变量范围,即您的 input1
变量的范围仅限于 do
while
块(即 { }
代码),所以只需在循环外声明变量即可。
int input1 = 0;//scope is now wider, not just limited to the loop
do {
input1=userScan.nextInt();
} while(input1>10);
我遇到了一个关于局部变量的问题。
以下不是我的原始代码,但我用一个简单的例子来表达我的问题:
import java.util.Scanner;
public static void main(String[] args) {
Scanner userScan=new Scanner(System.in);
do{
int input1=userScan.nextInt();
}while(input1>10);
}
我的目的是让用户输入一个在我预期范围内的整数。 如果输入的数字不符合规则,我希望用户可以重新输入,直到符合为止。但是,"input1"是一个局部变量,所以在while表达式中是无效的。但我不希望用户再次重新输入整数。只使用一个变量会更好。有没有人对此有建议或其他可以实现这个想法的方法? 谢谢!
public static void main(String[] args)
{
Scanner userScan=new Scanner(System.in);
int input1;
do{
input1=userScan.nextInt();
}while(input1>10);
}
只需在 do while 循环范围之外声明 input1
你为什么不这样做呢? :D delcare input1在do...while循环外,可以在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);
}
问题出在您的 input1
变量范围,即您的 input1
变量的范围仅限于 do
while
块(即 { }
代码),所以只需在循环外声明变量即可。
int input1 = 0;//scope is now wider, not just limited to the loop
do {
input1=userScan.nextInt();
} while(input1>10);