获取循环中的随机值

时间:2017-10-18 17:21:37

标签: java android arrays for-loop

我在这里做的是尝试生成一个数字,看看它是否与数组中的数字相同。如果相同,系统将重新生成,直到该数字是唯一的。

Random randomno = new Random();
int r = randomno.nextInt(3);

TextView randomnumber = (TextView) findViewById(R.id.TVRno);

int[] arr = new int[2];
arr[0] = 0;
arr[1] = 2;

for(int i = 0; i < arr.length; i++){
    if(r == arr[i]){
        z = randomno.nextInt(3);
        i = 0;
    }
}

randomnumber.setText("" + z);

但最终我无法在z循环中打印变量for。如何打印变量z?我使用错误的方法来做到这一点吗?

1 个答案:

答案 0 :(得分:1)

此处的变量z超出了范围。它是什么称为块变量,它只能在循环内访问。要在外部访问它,需要在该循环之外声明:

Random randomno = new Random();

int r = randomno.nextInt(3);

TextView randomnumber = (TextView) findViewById(R.id.TVRno);

int[] arr = new int[2];

arr[0] = 0;

arr[1] = 2;

int z = 0;

            for(int i = 0; i < arr.length; i++){
                if(r == arr[i]){
                    z = randomno.nextInt(3);
                    i = 0;
                }
            }
randomnumber.setText("" + z);

再看一遍,你似乎没有在内部或外部初始化z。你的代码崩溃了吗?如果是这样,那就是原因。

附注:您可以像这样初始化该数组:int arr = new int[] {0,20};