for-each用法误区(不能改变数组元素值)
代码例程:
/**
* 数据加密传输
*/
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用法误区(不能改变数组元素值)的更多相关文章
- #PHP 数组添加元素、统计数组相同元素个数、改变数组key值~_~
一.数组添加元素 1.定义和用法: array_push() 函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度. 2.语法: array_push(array,value1, ...
- 应该用forEach改变数组的值吗? 原生JS forEach()和map()遍历的异同点
应该用forEach改变数组的值吗? https://segmentfault.com/q/1010000013170900?utm_source=index-hottest 由于js中的数组是引用类 ...
- forEach究竟能不能改变数组的值
forEach究竟能不能改变数组的值 :https://blog.csdn.net/ZhengKehang/article/details/81281563 初学者每次提到Array对象的时候有些烦人 ...
- vue中改变数组的值视图无变化
今天开发的时候遇到一个多选取消点击状态的,渲染的时候先默认都选中,然后可以取消选中,自建了一个全为true的数组,点击时对应下标的arr[index]改为false,数据改变了状态没更新,突然想起来单 ...
- 为什么改了JS数组中的一个元素的值,其他数组元素值都跟着变了
原因: 数组是引用类型,数组变量存储在栈,元素数据存储在堆中,将数组赋值不同的对象,所以的赋值对象都指向堆同一个数据,所以改变其中一个数组中的元素,别的数组元素也会改变. 解决方案: 原理就是先把数组 ...
- 095-PHP遍历关联数组,并修改数组元素值
<?php $arr=array('I'=>1,'II'=>2,'III'=>3,'IV'=>4,'V'=>5); //定义一个数组 echo '修改之前数组信息: ...
- java 怎样 改变 数组元素的值
简介 (Introduction): 背景 需要解析Object数组中的数据,将数据(mintime)进行修改,改为(maxtime),修改后,生成新的对象 结构图 核心 对于Object数组的概念理 ...
- php中用foreach改变数组的值的问题
翻到PHP文档的foreach那页这样写道: “foreach 语法结构提供了遍历数组的简单方式.foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误 ...
- php中的foreach改变数组的值的问题
翻到PHP文档的foreach那页这样写道: “foreach 语法结构提供了遍历数组的简单方式.foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误 ...
随机推荐
- python计算:pi/4=1-1/3+1/5-1/7+…
当有一项的绝对值小于10e-6停止计算 def cul() : ans = 0;add = 1 sign = 1 while(1/add>10**(-6)) : ans = ans + sign ...
- Ajax学习系列——向服务器发送请求
1.如何发送请求? 如果需要向服务器发送请求,我们使用的是XMLHttpRequest对象中的open()和send()方法. var xhr = new XMLHttpRequest();//具体创 ...
- SQL 、LINQ日前比较
using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; ...
- Java中的super关键字和this关键字作用介绍
一.super关键字的作用 1.子类在构造方法中显示调用父类构造方法 super可以在子类的构造方法中显示调用父类的构造方法:并且这行代码必须出现在子类构造方法的第一行.原因:因为父类构造方法没有执行 ...
- 日期月份是英文转成数字——oracle
update table01 set F_DATE = to_char(to_date(F_DATE, 'dd-month-yy', 'NLS_DATE_LANGUAGE=AMERICAN'), 'y ...
- jedis的ShardedJedisPool链接池的扩容问题
回顾上一篇文章jedis连接池的构建. 我们来分析ShardedJedisPool的基于客户端分片所可能带来的问题:扩容 ShardedJedisPool的节点扩容 .ShardedJedisPool ...
- mac安装和启动mongodb
使用使用 brew安装mongodb 可以使用 OSX 的 brew 来安装 mongodb: sudo brew install mongodb 如果要安装支持 TLS/SSL 命令如下: sudo ...
- 使用BP拦截POST型请求包 (9.20 第九天)
使用BP拦截POST型请求包 1.安装phpstudy并下载wordpress 文件,安装在phpstudy的www目录下 phpstudy下载地址:https://www.xp.cn/downloa ...
- UML概念
UML UML:Unified Modeling Language是非专利的第三代建模和规约语言.UML是一种开放的方法,用于说明,可视化,结构和编写一个正在开发的,面向对象的,软件密集系统的制品开放 ...
- foreach —(遍历数组或循环中的字符,以获取信息)
namespace ConsoleApplication2{ class Program {//letter 字母 gigit 数字 symbol 符号 static void Main(string ...