[英]While loop condition in java
我正在通過“ Java-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);
}
}
在while (e > 0)
之后編寫的范圍內,我不了解e的遞減。 由於e = i,並且i遞增,因此我相信e在第一次執行for循環后應該大於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的冪
i = 1,e = 1,結果乘以2,2乘以1的冪是2
等等
它們將e遞減以將i向后“遞減”到0。每次重置E,並且在第一個迭代之后,將始終在迭代中進入while循環,並在倒計數為零時始終退出while循環。
簡單的單詞解釋 :
在while循環中,您需要這樣一條語句,因為while條件變為false且程序控制退出while循環,這將有助於避免無休止的問題。
您問過為什么遞減e在此程序中很重要?
答案 :如果不減e,則while(e> 0)將始終返回真值,並且程序將陷入無限循環(始終處於while循環中)。
當i = 2時,樣本迭代2
結果= 1
e =我= 2
while(e> 0)計算為true
所以結果= 1 * 2 = 2
e--:e = 1
再次while(e> 0)計算為true,因為e = 1> 0
結果= 2 * 2 = 4
e--:e = 0
現在再次檢查while(e> 0),它將評估為false並且while循環結束。
有關少量示例的更多信息,請參見以下鏈接: https : //docs.oracle.com/javase/tutorial/java/nutsandbolts/while.html
While循環執行其任務,直到給定條件為假。 假設e
開始大於0,不減小它會導致它永遠循環。
就程序而言,它遞減e
以便計算2 n ,這是通過將2 n
倍加倍來實現的。
如果e不遞減,則for循環超過i=0
,while循環將永遠執行。 這是因為在不更改e值的情況下,e將始終大於0。因此,必須遞減e才能滿足退出條件。
讓我們考慮一個for循環的特定實例,並在該實例中說e = 5(這將在i = 5時發生)。 因此,我們正在運行while循環,直到e大於0,這是5倍。 這5次中的每一次,我們都將結果(最初為1)乘以2並對其進行更新。 因此,在while循環運行5次之后,我們將完成2 ^ 5,然后將2打印到冪i(5)是如此。 現在,為for循環的每個值實現此邏輯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.