将 for 循环更改为 while
Change for-loop to a while
如何将以下代码更改为 while 循环?
for (int i = 12; i < 40; i += 14) {
for (int j = 30; j > 10; j -= 9) {
System.out.println(i + "+" + j + "=" + (i + j) + "");
}
}
我试过了,但没用:
public class WhileExample {
public static void main(String[] args) {
int i = 12;
int j = 10;
while (i <= 40) {
while (j <= 30) {
System.out.println(i + "+" + j + "=" + (i + j) + "");
j++;
}
i++;
}
}
}
您要找的答案:
int i = 12;
while (i < 40) {
int j = 30;
while (j > 10) {
System.out.println(i + "+" + j + "=" + (i + j) + "");
j -= 9;
}
i += 14;
}
你这里有一些问题。首先,您需要在 for
和 while
循环中保留相同的条件。其次,您需要使用 for
循环使用的相同增量,而不仅仅是 ++
调用。第三,你没有像在循环中那样初始化 j
,初始化应该在 inside 外循环中完成:
public class WhileExample {
public static void main(String[] args) {
int i = 12;
while (i < 40) {
int j = 30;
while (j > 10) {
System.out.println(i + "+" + j + "=" + (i + j) + "");
j -= 9;
}
i += 14;
}
}
}
以下是解决您的问题的工作代码,您没有再次看到 j
的值为默认值,
public class WhileExample {
public static void main(String[] args) {
int i = 12;
int j = 30;
while (i < 40) {
while (j > 10) {
System.out.println(i + "+" + j + "=" + (i + j) + "");
j -= 9;
}
i += 14;
j = 30;
}
}
}
要将任何 for
循环转换为 while
循环,您必须了解这两个循环的结构。一般来说,两个循环的构造如下:
for-loop
for (loop counter initialization; break condition; counter increment/decrement) {
body of loop
}
while-loop
while (break condition) {
body of loop
}
while
循环中唯一缺少的是计数器初始化和计数器 decrement/increment。通常,当您需要循环计数器时,您将使用 for
循环。当您不需要循环计数器时,您将使用 while
循环。但是,这不是语言强制执行的规则。你可以像这样使用带有计数器变量的 while
循环:
int counter = 0;
while (break condition) {
body of loop
counter++;
}
或者,如果您想使用不带计数器的 for
循环:
for (;break condition;) {
body of loop
}
或者像这样更疯狂的事情:
for (;;) {
body of loop
if (break condition) {
break;
}
}
显然,最好的办法是将循环用于其预期目的:当需要循环计数器时使用 for 循环,当不需要时使用 while 循环。
根据这里的信息,你应该可以看出:
for (int i = 12; i < 40; i += 14) {
for (int j = 30; j > 10; j -= 9) {
System.out.println(i + "+" + j + "=" + (i + j) + "");
}
}
应翻译为:
int i = 12;
while (i < 40) {
int j = 30; // initializing this outside the outer `while` is a logic error
while (j > 10) {
System.out.println(i + "+" + j + "=" + (i + j) + "");
j -= 9;
}
i += 14;
}
实现此转换的最简单方法是从内到外开始。意思是,转到最里面的循环,按照我的建议转换它,然后自己解决。无论你的循环有多嵌套,你都应该能够将任何 for
转换为 while
循环。
如何将以下代码更改为 while 循环?
for (int i = 12; i < 40; i += 14) {
for (int j = 30; j > 10; j -= 9) {
System.out.println(i + "+" + j + "=" + (i + j) + "");
}
}
我试过了,但没用:
public class WhileExample {
public static void main(String[] args) {
int i = 12;
int j = 10;
while (i <= 40) {
while (j <= 30) {
System.out.println(i + "+" + j + "=" + (i + j) + "");
j++;
}
i++;
}
}
}
您要找的答案:
int i = 12;
while (i < 40) {
int j = 30;
while (j > 10) {
System.out.println(i + "+" + j + "=" + (i + j) + "");
j -= 9;
}
i += 14;
}
你这里有一些问题。首先,您需要在 for
和 while
循环中保留相同的条件。其次,您需要使用 for
循环使用的相同增量,而不仅仅是 ++
调用。第三,你没有像在循环中那样初始化 j
,初始化应该在 inside 外循环中完成:
public class WhileExample {
public static void main(String[] args) {
int i = 12;
while (i < 40) {
int j = 30;
while (j > 10) {
System.out.println(i + "+" + j + "=" + (i + j) + "");
j -= 9;
}
i += 14;
}
}
}
以下是解决您的问题的工作代码,您没有再次看到 j
的值为默认值,
public class WhileExample {
public static void main(String[] args) {
int i = 12;
int j = 30;
while (i < 40) {
while (j > 10) {
System.out.println(i + "+" + j + "=" + (i + j) + "");
j -= 9;
}
i += 14;
j = 30;
}
}
}
要将任何 for
循环转换为 while
循环,您必须了解这两个循环的结构。一般来说,两个循环的构造如下:
for-loop
for (loop counter initialization; break condition; counter increment/decrement) {
body of loop
}
while-loop
while (break condition) {
body of loop
}
while
循环中唯一缺少的是计数器初始化和计数器 decrement/increment。通常,当您需要循环计数器时,您将使用 for
循环。当您不需要循环计数器时,您将使用 while
循环。但是,这不是语言强制执行的规则。你可以像这样使用带有计数器变量的 while
循环:
int counter = 0;
while (break condition) {
body of loop
counter++;
}
或者,如果您想使用不带计数器的 for
循环:
for (;break condition;) {
body of loop
}
或者像这样更疯狂的事情:
for (;;) {
body of loop
if (break condition) {
break;
}
}
显然,最好的办法是将循环用于其预期目的:当需要循环计数器时使用 for 循环,当不需要时使用 while 循环。
根据这里的信息,你应该可以看出:
for (int i = 12; i < 40; i += 14) {
for (int j = 30; j > 10; j -= 9) {
System.out.println(i + "+" + j + "=" + (i + j) + "");
}
}
应翻译为:
int i = 12;
while (i < 40) {
int j = 30; // initializing this outside the outer `while` is a logic error
while (j > 10) {
System.out.println(i + "+" + j + "=" + (i + j) + "");
j -= 9;
}
i += 14;
}
实现此转换的最简单方法是从内到外开始。意思是,转到最里面的循环,按照我的建议转换它,然后自己解决。无论你的循环有多嵌套,你都应该能够将任何 for
转换为 while
循环。