我正在尝试反转数组的元素。我的代码没有编译错误或运行时错误,但仍然拒绝显示结果。
根据我的知识,我尝试了所有可能的替代方法。
class mark25 {
public static void main(String args[]) {
int arr[] = {
1,
2,
3,
4,
5
};
int len = arr.length;
boolean flag = true;
while (flag) {
for (int i = 0; i < len - 1; i++) {
int temp = arr[i];
arr[i] = arr[len - 1];
arr[len - 1] = temp;
if (i > len - 1) {
flag = false;
}
}
}
for (int j = 0; j < len; j++) {
System.out.println(arr[j]);
}
}
}
我希望代码显示数组“ arr”的颠倒顺序。
答案 0 :(得分:0)
这是因为,您的代码“陷入了无限循环”
您的if(i>len-1)
条件与for循环条件i<len-1
的条件矛盾。因此,标志变量永远不会获得值FALSE
,因此永远不会终止
此外,还有其他一些错误。
在for循环中,您正在将索引i的值与索引len-1互换,但是len变量的值没有改变。
这是一个解决方案,但有一些更改:
您不需要嵌套循环。
每次交换一次后,您都必须减少len的值 值。
class mark25 {
public static void main(String args[]) {
int arr[] = {
1,
2,
3,
4,
5
};
int len = arr.length;
boolean flag = true;
int i = 0;
while (flag) {
int temp = arr[i];
arr[i] = arr[len - 1];
arr[len - 1] = temp;
len--;
i++;
if (i > len - 1) {
flag = false;
break;
}
}
for (int j = 0; j < arr.length; j++) {
System.out.println(arr[j]);
}
}
}
希望有帮助。
答案 1 :(得分:0)
int[] arr = {5,0,6,7,8};
ArrayUtils.reverse(arr);
for(int i =0 ; i < arr.length ; i++){
System.out.println(arr[i]);
}
这是反转数组的另一种方法。要使用ArrayUtils,请下载commons.lang3.jar并将其添加到您的构建路径中。希望它会有所帮助。