如何从Java中的do-while循环内部访问变量?
下面的代码写出一个值,直到输入的值不在0和10之间。
这是我的代码:
import java.util.Scanner;
public class DoWhileRange {
public static void main(String[] args) {
do{
System.out.println("Enter a number between 0 an 10");
Scanner in = new Scanner(System.in);
int a = in.nextInt();
int total +=0;
}while (a>0 && a<10);
System.out.println("Loop Terminated");
System.out.println("The total is : "+total);
}
}
只要输入介于0和10之间,循环就会继续询问输入。一旦输入其他数字,循环就会终止并显示所有输入数字的总和。
答案 0 :(得分:2)
要访问循环之外的变量,需要在循环外声明/初始化它,然后在循环内更改它。如果有问题的变量不是int,我建议你将它初始化为null。但是,由于无法将int变量初始化为null,因此必须将其初始化为某个随机值:
import java.util.Scanner;
public class DoWhileRange {
public static void main(String[] args) {
int a = 0; //create it here
do {
System.out.println("Enter a number between 0 an 10");
Scanner in = new Scanner(System.in);
a = in.nextInt();
} while (a>0 && a<10);
System.out.println("Loop Terminated");
// do something with a
}
}
注意:如果您只是在循环之前声明变量而不初始化它(根据@ Evginy的答案),您将能够在循环外访问它,但您的编译器会抱怨它可能尚未初始化。
答案 1 :(得分:1)
尝试(在循环外声明变量):
int a = -1;
do{
System.out.println("Enter a number between 0 an 10");
Scanner in = new Scanner(System.in);
a = in.nextInt();
}while (a>0 && a<10);
答案 2 :(得分:0)
试试这个
Scanner in = new Scanner(System.in);
int a;
do {
System.out.println("Enter a number between 0 an 10");
a = in.nextInt();
} while (a > 0 && a < 10);
System.out.println("Loop Terminated");