我遇到了关于局部变量的问题。
以下不是我原来的代码,但我用一个简单的例子来表达我的问题:
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的表达式中无效。但我不希望用户再次重新输入整数。仅使用一个变量会更好。有没有人有关于它的建议或其他可以实现这个想法的方法? 谢谢!
答案 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);