我是Java新手。我想使用循环获取数组中最后一次出现的索引。但是,我不明白为什么我不能。
这是数组:
{2、3、4、5、4、5、3}
我想获取其中最后4个的索引。
我的代码是:
public static void main(String args[]){
int[] nums = {2, 3, 4, 5, 4, 5, 3};
int pos4 = 0;
for (int k = nums.length -1; k >= 0; k--){
if (nums[k] == 4){
pos4 = k;
break;
}
System.out.print(pos4);
}
}
其结果是:00 ??
当我更改为:
public static void main(String args[]){
int[] nums = {2, 3, 4, 5, 4, 5, 3};
int pos4 = 0;
for (int k = nums.length -1; k >= 0; k--){
if (nums[k] == 4){
break;
}
System.out.print(k);
}
}
我有65 ???
但是,当我直接从循环中打印时,我可以正确获取索引:
public static void main(String args[]){
int[] nums = {2, 3, 4, 5, 4, 5, 3};
int pos4 = 0;
for (int k = nums.length -1; k >= 0; k--){
if (nums[k] == 4){
System.out.print(k);
break;
}
}
}
谁能告诉我为什么?非常感谢!
最佳答案
您的第一个示例是从循环内进行打印。一旦满足条件,您就退出循环,从不打印最终值。
public static void main(String args[]){
int[] nums = {2, 3, 4, 5, 4, 5, 3};
int pos4 = 0;
for (int k = nums.length -1; k >= 0; k--) {
if (nums[k] == 4){
pos4 = k;
break;
}
}
System.out.print(pos4); // moved outside of loop to print final value
}