从do-while循环中访问变量

时间:2013-05-14 01:43:44

标签: java variables while-loop scope do-while

如何从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之间,循环就会继续询问输入。一旦输入其他数字,循环就会终止并显示所有输入数字的总和。

3 个答案:

答案 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");