代码例程:

/**

 * 数据加密传输

 */

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. cf754 754D - Fedor and coupons

    2个多小时,弱智了..(连A都做不对,就不要做D了(迷)) #include<bits/stdc++.h> #define lowbit(x) x&(-x) #define LL ...

  2. 73.Python中ORM聚合函数详解:Count

    Count:用来求某个数据的个数. 在以下所有的示例中所采用的模型为: from django.db import models # 定义作者模型 class Author(models.Model) ...

  3. 七、JavaScript之console.log输出和document.write输出

    一.代码如下 二.运行效果如下 三.点击之后,效果如下 四.按一下F12,在控制台中可以看到

  4. 八十六、SAP中ALV的事件查看

    一.事务代码SE37,点击运行 二.再点击执行 三.我们可以看到有17个事件,点击17前面的表格图标 四.来到详细的事件中 五.我们回到SE37,点击显示 六.查看参数,为一个内表 七.我们点击SLI ...

  5. 二十九、SAP中输出漂亮的表格

    一.代码如下 二.输出效果如下 *&---------------------------------------------------------------------* *& ...

  6. 在Windows中安装vim

    这篇文章主要教大家如何在Windows系统下安装最好用的编辑器VIM 来自百度百科的介绍: Vim是一个类似于Vi的著名的功能强大.高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性. VIM ...

  7. POJ 1770 树形DP

    咋一看确实想到的是树形DP,但是我一开始也马上想到环的情况,这样应该是不可以进行树形DP的,然后我自以为是地想用有向图代替无向图,而且总是从能量高的指向能量低的,这样自以为消除了环,但是其实是不对滴, ...

  8. C#图片闪烁

    导致画面闪烁的关键原因分析:       一.绘制窗口由于大小位置状态改变进行重绘操作时      绘图窗口内容或大小每改变一次,都要调用Paint事件进行重绘操作,该操作会使画面重新刷新一次以维持窗 ...

  9. 两表关联更新数据——oracle

    from testb b where b.id=a.id) ; (where exists(select 1 from testb b where b.id=a.id):如果没有这个条件,不匹配的选项 ...

  10. Ajax请求传递数组参数的方法

    方法一:拼接字符串参数 var arr={params:['param','param2']}; $.ajax({url:请求地址, data:arr, type:"POST", ...