欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

语句不能改变arrs数组,需用for循环

程序员文章站 2022-04-30 18:00:43
> 闷骚的男 > for-each语句不能改变arrs数组,需用for循环... --> for-each语句不能改变arrs数组,需用for...

    for-each语句不能改变arrs数组,需用for循环

    /**
    * 数据传输
    */
    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