代码例程:

/**

 * 数据加密传输

 */

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用法误区(不能改变数组元素值)的更多相关文章

  1. #PHP 数组添加元素、统计数组相同元素个数、改变数组key值~_~

    一.数组添加元素 1.定义和用法: array_push() 函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度. 2.语法: array_push(array,value1, ...

  2. 应该用forEach改变数组的值吗? 原生JS forEach()和map()遍历的异同点

    应该用forEach改变数组的值吗? https://segmentfault.com/q/1010000013170900?utm_source=index-hottest 由于js中的数组是引用类 ...

  3. forEach究竟能不能改变数组的值

    forEach究竟能不能改变数组的值 :https://blog.csdn.net/ZhengKehang/article/details/81281563 初学者每次提到Array对象的时候有些烦人 ...

  4. vue中改变数组的值视图无变化

    今天开发的时候遇到一个多选取消点击状态的,渲染的时候先默认都选中,然后可以取消选中,自建了一个全为true的数组,点击时对应下标的arr[index]改为false,数据改变了状态没更新,突然想起来单 ...

  5. 为什么改了JS数组中的一个元素的值,其他数组元素值都跟着变了

    原因: 数组是引用类型,数组变量存储在栈,元素数据存储在堆中,将数组赋值不同的对象,所以的赋值对象都指向堆同一个数据,所以改变其中一个数组中的元素,别的数组元素也会改变. 解决方案: 原理就是先把数组 ...

  6. 095-PHP遍历关联数组,并修改数组元素值

    <?php $arr=array('I'=>1,'II'=>2,'III'=>3,'IV'=>4,'V'=>5); //定义一个数组 echo '修改之前数组信息: ...

  7. java 怎样 改变 数组元素的值

    简介 (Introduction): 背景 需要解析Object数组中的数据,将数据(mintime)进行修改,改为(maxtime),修改后,生成新的对象 结构图 核心 对于Object数组的概念理 ...

  8. php中用foreach改变数组的值的问题

    翻到PHP文档的foreach那页这样写道: “foreach 语法结构提供了遍历数组的简单方式.foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误 ...

  9. php中的foreach改变数组的值的问题

    翻到PHP文档的foreach那页这样写道: “foreach 语法结构提供了遍历数组的简单方式.foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误 ...

随机推荐

  1. [YOLO]《YOLOv3: An Incremental Improvement》笔记

    相比较于前两篇论文,个人感觉YOLO3作者有点来搞笑的!!!虽然加了一些新的点子进来,但是,论文的开头是这样的: 简单理解就是作者花了很多时间玩Twitter去了,所以没有做啥研究!!!! 然后: 你 ...

  2. 洛谷 三月月赛 A

    模拟模拟 #include<bits/stdc++.h> using namespace std; inline int ra() { ,f=; char ch=getchar(); ; ...

  3. Flutter如何引用第三方库并使用

    Flutter如何引用第三方库并使用 https://www.jianshu.com/p/bbda7794345e Flutter官网点击访问Flutter教程(一)Flutter概览Flutter教 ...

  4. U盘安装Debian KDE 输入法 Manjaro Linux WPS 字体

    Manjaro: 首先下载Manjaro Linux,然后用USBWriter(https://pan.baidu.com/s/1bZGb5k)写入,重启选择USB启动. 更改软件仓库(Debian称 ...

  5. python之os.exec*族用法简结

    os.exec*族主要用来代替当前进程,执行新的程序,不返回值.在UNIX上,新的执行程序加载到当前进程,与调用它的进程有相同的id. os.execl(path, arg0, arg1, ...) ...

  6. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-adjust

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  7. 公告上下滚动基于Jquery

    前提  需要引入jquery  如果你用的单位不是px  修改的同时红色部分需保持一致 <!DOCTYPE html> <html> <head> <meta ...

  8. Linux用户管理 权限管理 内存管理 网络管理命令 (第四天)

    默认添加的用户会自动加入和用户名一样的组中su 切换用户查看当前登陆的用户: whoami id`查看当前用户属于哪个组:groupsgroupadd 组名 添加组groupdel 组名 删除组gre ...

  9. C语言拾遗——sscanf

    今天写题用到了sscanf,怕忘赶紧记录一下 去百度了一下这玩意的函数原型好像是长这样的,微软上扣下来的  int sscanf( const char *buffer, const char *fo ...

  10. 大二暑假第六周总结--开始学习Hadoop基础(五)

    简单学习数据仓库HIVE HIVE是一个构建于Hadoop顶端的数据仓库工具 支持大规模数据存储,分析,具有良好的可扩展性 某种程度上可以看做是用户编程接口,本身不存储和处理数据 依赖分布式系统HDF ...