java - 如何理解java中的循环和数组
问题描述
我对确实有嵌套循环来打印二维数组的数组循环感到很困惑。/它包含一个没有花括号的循环,第二个循环表示循环的花括号的方式正好相反......
因为我正在学习,所以我刚刚输入了代码并得到了输出。
public class TwoDimensional {
private int i, j, k = 0;
int[][] twod = new int[4][5];
public void DoubleT() {
for (i = 0; i < 4; i++)
for (j = 0; j < 5; j++) {
twod[i][j] = k;
k++;
}
for (i = 0; i < 4; i++) {
for (j = 0; j < 5; j++)
System.out.print(twod[i][j] + " ");
System.out.println();
}
}
}
它生成的结果是 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
解决方案
尝试这个 :
public class TwoDimensional {
private int i, j, k = 0;
int[][] twod = new int[4][5];
public void DoubleT() {
for (i = 0; i < 4; i++)
for (j = 0; j < 5; j++) {
twod[i][j] = k;
k++;
}
}
for (i = 0; i < 4; i++) {
for (j = 0; j < 5; j++){
System.out.print(twod[i][j] + " ");
}
System.out.println();
}
}
要正确使用大括号,请始终考虑循环的目的,您希望它们何时完成以及何时继续。在您的情况下,您将需要针对不同任务的嵌套循环,因此您必须正确界定这些任务中的每一项。
填充二维数组:
for (i = 0; i < 4; i++)
for (j = 0; j < 5; j++) {
twod[i][j] = k;
k++;
}
}
打印二维数组值:
for (i = 0; i < 4; i++) {
for (j = 0; j < 5; j++){
System.out.print(twod[i][j] + " ");
}
System.out.println();
}
请注意,对于填充或打印数组,您的第一个循环(迭代器 i)负责该行。它会停在 i=3,第 3 行。所以你会在第 0 行,直到你完成该行所有列的值( [0][0],[0][1],[0 ][2],[0][4] ),当您的第一行完全填满或打印时,您只想转到第二行,依此类推。在打印案例中,您需要在 'i' 增量(新行号)之前和拥有所有 'j' 值之后更改行。
总而言之,当您的列 ('j') 完成时,您只需要增加行 ('i') 或转到下一行 (println())。
推荐阅读
- python - Pytest Django 函数模拟 APITestCase
- bioinformatics - 将杂原子添加到 pdb 文件
- python - 如何创建根据组大小排序的多索引数据框?
- jquery - jquery对象的每次迭代
- f# - 将嵌套匹配表达式转换为函数
- python - 如何在 Python 2.7 中阻止键盘输入?
- c++ - 用不同的列读取每一行的全部内容
- mysql - 如何修复错误代码 1241:操作数应在 mysql 查询中包含 1 列?
- typescript - 如何使用 typescript 从 azure 函数中的 cosmosdb 进行查询
- javascript - 从 MDX 访问 React 组件状态