我在这里做的是尝试生成一个数字,看看它是否与数组中的数字相同。如果相同,系统将重新生成,直到该数字是唯一的。
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
?我使用错误的方法来做到这一点吗?
答案 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};