簡體   English   中英

Java中的While循環條件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM