[英]How to do this task with `while` loop?
我不知道如何將所有嘗試都從for循環轉換為while循環。 我有以下代碼:
public static void main(String[] args) {
int[][] arr = new int[4][];
arr[0] = new int[4];
arr[1] = new int[2];
arr[2] = new int[1];
arr[3] = new int[3];
int counter = 1;
如何將此for循環轉換為while循環?
//fill arr numbers from 1 to 10
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
arr[i][j] = counter++;
}
}
for (int i = 0; i < arr.length; i++) {
System.out.print(" arr [ " + i + " ] = ");
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println(" ");
}
}
}
輸出:
arr [ 0 ] = 1 2 3 4
arr [ 1 ] = 5 6
arr [ 2 ] = 7
arr [ 3 ] = 8 9 10
for
循環基本上是while
循環的緊湊寫法。
for (int i = 0; i < arr.length; i++) {
...
}
與:
int i=0;
while(i<arr.length){
....
i++;
}
while(int i <arr.length)
{
while(int j<arr[i].length)
{
arr[i][j] = counter++;
j++;
}
i++;
}
while(int i <arr.length)
{
System.out.print(" arr [ " + i + " ] = ");
while(int j<arr[i].length)
{
System.out.print(arr[i][j] + " ");
j++;
}
System.out.println(" ");
i++;
}
這可能對您有幫助。
int i = 0;
while ( i < arr.length ) {
int j = 0;
while ( j < arr[i].length;)
{
arr[i][j] = counter++;
j++;
}
i++;
}
然后打印值
int i = 0;
while ( i < arr.length ) {
System.out.print(" arr [ " + i + " ] = ");
int j = 0;
while ( j < arr[i].length) {
System.out.print(arr[i][j] + " ");
j++;
}
System.out.println(" ");
i++;
}
for
循環和while
循環的語法不同。 相當於for
循環:
for(int i = 0; i < arr.length; i++) {
...
}
是
int i = 0;
while(i < arr.length) {
...
i++;
}
以下是您的代碼,但帶有while
循環:
public static void main(String[] args) {
int[][] arr = new int[4][];
arr[0] = new int[4];
arr[1] = new int[2];
arr[2] = new int[1];
arr[3] = new int[3];
int counter = 1;
int i = 0, j = 0; // Initialize vars for while loops
//fill arr numbers from 1 to 10
while(i<arr.length){
while(j<arr[i].length){
arr[i][j] = counter++;
j++; // Increment as in for loops
}
i++; // Increment as in for loops
j = 0; // Restart j to the next outer loop step
}
i = 0; // Reset i for outer loop
// No need to j=0 since when the above loop ends, j will reset to 0
while(i<arr.length){
System.out.print(" arr [ " + i + " ] = ");
while(j<arr[i].length){
System.out.print(arr[i][j] + " ");
j++; // Increment as in for loops
}
i++; // Increment as in for loops
j = 0; // Same objective as in the loop above
System.out.println(" ");
}
}
注釋中的解釋,希望對您有所幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.