java 中的 while 循环条件
While loop condition in java
我正在努力完成 "Java - A beginners guide by Herbert Schildt"。我希望这个问题不会太荒谬。它是关于 while 循环条件,while 循环位于 for 循环内。代码示例是这样的:
public static void main(String[] args) {
int e;
int result;
for (int i = 0; i < 10; i++) {
result = 1;
e = i;
while (e > 0) {
result *= 2;
e--;
}
System.out.println("2 to the " + i + " power is " + result);
}
}
不明白e的递减,在while (e > 0)
后面写的范围内。由于 e = i,并且 i 递增,我相信在第一次执行 for 循环后 e 应该大于 0。如果 e 不递减,程序将不会 运行 正确。为什么在此示例中需要递减 e?
如果你不这样做 e--
你将陷入无尽的 while loop
。
这样看:
让我们进入 for
循环的随机迭代。
假设 i=5
。
然后 e=i
所以 e=5
.
我们现在进入 while
循环。
while (e >0) {
result*=2;
e--;
}
如果我们不执行 e--
,e
将始终保持在 5,并且 while
循环将永远不会终止。
通过执行 e--
,e
将从 5 开始,然后是 4,....然后是 0 while
循环将终止,我们将跳回到 for
循环,提高 i
(因此 e
)并重复整个过程。
他们在那里所做的是,对于 i 的每次迭代,他们将结果乘以 2,i 次。
演练将是
i = 0,e = 0,结果不相乘,输出2的0次方为1
i = 1,e = 1,结果乘以2,2的1次方为2
等等
他们在那里将 e 递减到 "count i backwards" 到 0。E 每次都被重置,并且总是会在第一次迭代后进入 while 循环,并且总是会在它结束时退出 while 循环倒数到零。
While 循环执行它们的任务,直到给定条件为假。假设 e
开始时大于 0,不递减它将导致它永远循环。
在程序上,它递减e
是为了计算2n,这是通过乘以2n
次来完成的。
如果e不递减,一旦for循环前进到i=0
以上,while循环就会一直执行下去。这是因为如果不改变 e 的值,e 将总是 大于 0。因此,必须递减 e 才能满足退出条件。
简单的单词解释:
In while loop you need such a statement because of which the while
condition becomes false and program control comes out of the while
loop and it will help to avoid endless lopping problem.
你问过为什么递减 e 在这个程序中很重要?
答案 :如果你不递减 e 那么 while(e > 0) 将永远是 return 真值并且程序将进入无限循环(将永远处于 while 循环中).
当 i = 2 时的样本迭代 2:
结果 = 1
e = i = 2
while(e > 0) 计算结果为真
所以结果 = 1 * 2 = 2
e-- : e = 1
再次 while(e > 0) 计算结果为真,因为 e=1 > 0
结果 = 2 * 2 = 4
e-- : e = 0
现在再次检查 while(e > 0),它的计算结果为 false,while 循环结束。
有关样本较少的更多信息,请参阅下面 link:
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/while.html
让我们考虑 for 循环的一个特定实例,并假设在该实例中 e = 5(这将在 i = 5 时发生)。
所以,我们就是运行while循环直到e大于0,也就是5次。
这 5 次中的每一次,我们都将结果(最初为 1)乘以 2 并更新它。
因此,在 while 循环的 5 次 运行 结束时,我们将完成 2^5,然后我们打印 2 的 i(5) 次方。
现在,为 for 循环的每个值实现此逻辑。
我正在努力完成 "Java - A beginners guide by Herbert Schildt"。我希望这个问题不会太荒谬。它是关于 while 循环条件,while 循环位于 for 循环内。代码示例是这样的:
public static void main(String[] args) {
int e;
int result;
for (int i = 0; i < 10; i++) {
result = 1;
e = i;
while (e > 0) {
result *= 2;
e--;
}
System.out.println("2 to the " + i + " power is " + result);
}
}
不明白e的递减,在while (e > 0)
后面写的范围内。由于 e = i,并且 i 递增,我相信在第一次执行 for 循环后 e 应该大于 0。如果 e 不递减,程序将不会 运行 正确。为什么在此示例中需要递减 e?
如果你不这样做 e--
你将陷入无尽的 while loop
。
这样看:
让我们进入 for
循环的随机迭代。
假设 i=5
。
然后 e=i
所以 e=5
.
我们现在进入 while
循环。
while (e >0) {
result*=2;
e--;
}
如果我们不执行 e--
,e
将始终保持在 5,并且 while
循环将永远不会终止。
通过执行 e--
,e
将从 5 开始,然后是 4,....然后是 0 while
循环将终止,我们将跳回到 for
循环,提高 i
(因此 e
)并重复整个过程。
他们在那里所做的是,对于 i 的每次迭代,他们将结果乘以 2,i 次。
演练将是
i = 0,e = 0,结果不相乘,输出2的0次方为1
i = 1,e = 1,结果乘以2,2的1次方为2
等等
他们在那里将 e 递减到 "count i backwards" 到 0。E 每次都被重置,并且总是会在第一次迭代后进入 while 循环,并且总是会在它结束时退出 while 循环倒数到零。
While 循环执行它们的任务,直到给定条件为假。假设 e
开始时大于 0,不递减它将导致它永远循环。
在程序上,它递减e
是为了计算2n,这是通过乘以2n
次来完成的。
如果e不递减,一旦for循环前进到i=0
以上,while循环就会一直执行下去。这是因为如果不改变 e 的值,e 将总是 大于 0。因此,必须递减 e 才能满足退出条件。
简单的单词解释:
In while loop you need such a statement because of which the while condition becomes false and program control comes out of the while loop and it will help to avoid endless lopping problem.
你问过为什么递减 e 在这个程序中很重要?
答案 :如果你不递减 e 那么 while(e > 0) 将永远是 return 真值并且程序将进入无限循环(将永远处于 while 循环中).
当 i = 2 时的样本迭代 2:
结果 = 1
e = i = 2
while(e > 0) 计算结果为真
所以结果 = 1 * 2 = 2
e-- : e = 1
再次 while(e > 0) 计算结果为真,因为 e=1 > 0
结果 = 2 * 2 = 4
e-- : e = 0
现在再次检查 while(e > 0),它的计算结果为 false,while 循环结束。
有关样本较少的更多信息,请参阅下面 link: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/while.html
让我们考虑 for 循环的一个特定实例,并假设在该实例中 e = 5(这将在 i = 5 时发生)。 所以,我们就是运行while循环直到e大于0,也就是5次。 这 5 次中的每一次,我们都将结果(最初为 1)乘以 2 并更新它。 因此,在 while 循环的 5 次 运行 结束时,我们将完成 2^5,然后我们打印 2 的 i(5) 次方。 现在,为 for 循环的每个值实现此逻辑。