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