for-each用法误区(不能改变数组元素值)

2023-05-24,,

代码例程:

/**

 * 数据加密传输

 */

import java.util.Scanner;

public class secretPass {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        int num = 0;

        while (true) {

            System.out.println("请输入四位正整数:");

            num = input.nextInt();

            if (num > 999 && num < 10000) {

                System.out.println("输入数据有效!");

                break;

            } else {

                System.out.println("输入数据无效,请重新输入!");

            }

        }

        System.out.println("加密前的数据是:" + num);

        int[] arrs = new int[4];

        arrs[0] = num % 10; // 取个位

        arrs[1] = num / 10 % 10; // 取十位

        arrs[2] = num / 100 % 10; // 取百位

        arrs[3] = num / 1000; // 取千位

        // 不能使用for-each语句改变arrs数组的元素

        // for-each只能用来遍历打印数组元素

        

        for (int n : arrs) {

            n = (n + 5) % 10;

            System.out.print(n+" ");

        }

        

        /*

        for (int i = 0; i < arrs.length; i++) {

            arrs[i] = (arrs[i] + 5) % 10;

        }

        */

        /*

        for (int i = 0; i < arrs.length; i++) {

            System.out.print(arrs[i] + " ");

        }

        */

        int tmp1 = arrs[0];

        int tmp2 = arrs[1];

        int tmp3 = arrs[2];

        int tmp4 = arrs[3];

        arrs[0] = tmp4;

        arrs[1] = tmp3;

        arrs[2] = tmp2;

        arrs[3] = tmp1;

        System.out.print("加密后的数据是:");

        for (int i : arrs) {

            System.out.print(i);

        }

    }

}

输出结果是:

请输入四位正整数:

1234

输入数据有效!

加密前的数据是:1234

9 8 7 6 加密后的数据是:1234

修改后的例程:

/**

 * 数据加密传输

 */

import java.util.Scanner;

public class secretPass {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        int num = 0;

        while (true) {

            System.out.println("请输入四位正整数:");

            num = input.nextInt();

            if (num > 999 && num < 10000) {

                System.out.println("输入数据有效!");

                break;

            } else {

                System.out.println("输入数据无效,请重新输入!");

            }

        }

        System.out.println("加密前的数据是:" + num);

        int[] arrs = new int[4];

        arrs[0] = num % 10; // 取个位

        arrs[1] = num / 10 % 10; // 取十位

        arrs[2] = num / 100 % 10; // 取百位

        arrs[3] = num / 1000; // 取千位

        // 不能使用for-each语句改变arrs数组的元素

        // for-each只能用来遍历打印数组元素

        /*

        for (int n : arrs) {

            n = (n + 5) % 10;

            System.out.print(n+" ");

        }

        */

    

        for (int i = 0; i < arrs.length; i++) {

            arrs[i] = (arrs[i] + 5) % 10;

        }

    

        /*

        for (int i = 0; i < arrs.length; i++) {

            System.out.print(arrs[i] + " ");

        }

        */

        int tmp1 = arrs[0];

        int tmp2 = arrs[1];

        int tmp3 = arrs[2];

        int tmp4 = arrs[3];

        arrs[0] = tmp4;

        arrs[1] = tmp3;

        arrs[2] = tmp2;

        arrs[3] = tmp1;

        System.out.print("加密后的数据是:");

        for (int i : arrs) {

            System.out.print(i);

        }

    }

}

输出结果为:

请输入四位正整数:

1234

输入数据有效!

加密前的数据是:1234

加密后的数据是:6789

for-each用法误区(不能改变数组元素值)的相关教程结束。

《for-each用法误区(不能改变数组元素值).doc》

下载本文的Word格式文档,以方便收藏与打印。