所以我正在玩下面显示的这个程序,我想知道如何在循环中修改数组元素,然后在循环外传递相同的修改数组(如numbers2[count] = numbers4[l]
所示) )。当我运行此代码段时,max(numbers2)
引用我在开头实例化的数组,而不是if语句中的修改数组。知道循环中对象/变量的范围只能在循环中可见,我该怎么做呢?请在下面提供此代码段的答案。 (Numbers4
是一个长度为7的字符串数组,numbers2
是一个长度为3的字符串数组。例如,如果我在数组number2中有一个数组[9,7,10],然后在数组number4中有另一个数组[3,8,4,5,6,4,9],我想存储3个number4到number2的第一个索引,导致[9,3,10],我的if语句会传递给这个特定数组,还是会传递[9,7,10]?
for(int l = 0; l < numbers4.length; l++) {
int maxNum2 = max(numbers2);
if(l % 2 == 0 && l < numbers4.length - 1) {
numbers2[count] = numbers4[l];
maxNum2 = max(numbers2);
int card = Integer.parseInt(numbers4[l + 1]);
if(card == 10) {
total = total - 10;
}else if(card == 11) {
total = total + 11;
}else if(card == 12) {
total = total + 12;
}else if(card == 13) {
total = total + 13;
}else if(card == 14) {
if(total < 86) {
total = total + 14;
}else {
total = total + 1;
}
}else if(card == 9) {
total = total + 0;
}else {
total = total + card;
}
}
答案 0 :(得分:0)
通过执行numbers2[count] = numbers4[l]
,您实际上正在修改numbers2
数组,因此您无需将其传递到循环之外
答案 1 :(得分:0)
变量的范围取决于其声明。如果在循环外声明一个Array变量并在循环中将其变异,那么它将在外部作用域中可见。未在内部范围中创建新变量。
由于number2和number4未在循环内声明,因此必须在外部作用域中声明它们。因此,您在该范围内可以看到Array元素的变异。