程序中已经定义了一个整型数组,如下所示:

int[] arr={6,8,7,4,9,10,……}
要求编写一个程序,将数组的第一个元素的取值放到数组的最后一个元素,即arr变为:{8,7,4,9,10,.....6}。
求解答

这个简单,先将数组的第一个数据保存一下,即:

int FirstNum = arr[0];

然后将数组的每个数据与其后面的数据进行替换,即:

int v = 0;
for (int i = 0;i < arr.length - 1; i++)
{
    v = arr[i+1];//获取后面的值
    arr[i] = v;//将后面的值替换为前面的值
}

注意,这里我没用foreach循环而且条件语句是i < arr.length() - 1;之所以这样,是因为如果遍历到数组的最后一个数值,那么在i+1这个位置就会抛出一个数组越界的异常。所以是arr.length() -1
接着,我们将数组的最后一个值赋值为我们记录的数组的第一个值,即:

arr[arr.length-1] = FirstNum;

这样,一个数组的最后一个取值替换为第一个取值并将其他数据前移的代码就写好了。总代码如下:

int[] arr = new int[]{874910,.....6};
int FirstNum = arr[0];
int v = 0;
for (int i = 0;i < arr.length - 1; i++)
{
    v = arr[i+1];//获取后面的值
    arr[i] = v;//将后面的值替换为前面的值
}
arr[arr.length-1] = FirstNum;

我们可以在最后面插入两个println语句来观察这种变化:

img


可以看到,数组的第一个值1已经成了它后面的值2,数组最后一个值4已经成了数组第一个值1
如果将利用toString数组更改前与更改后的变化输出,则是:

img


OK,如果以上内容帮助了你的话,请采纳,谢谢qwq

使用一个变量保存第一个数,然后使用一个循环,将第二个数到最后一个数都赋值给起前一个数,最后把保存的第一个数赋值给数组最后一个位置

使用拷贝方法也是一个不错的选择,代码量也比较少。

        int[] arr = {6, 8, 7, 4, 9, 10};
        int first = arr[0];
        System.arraycopy(arr, 1, arr, 0, arr.length - 1);
        arr[arr.length - 1] = first;