簡體   English   中英

For 循環無法正確打印

[英]For Loop doesn´t print out correctly

我創建了一個 for 循環。

我該怎么做才能打印出來:test0 test1 test2 test3

 for (int i = 0; i < 4; i++) {

        int x = 0;
        System.out.println("test"+x);
        x++;

    }

但它沒有打印出來: test0 test1 test2 test3

它打印出來: test0 test0 test0 test0

您需要將“x”更改為“i”,因為“i”是索引變量,每次迭代都會增加 1。 "x" 是一個局部變量並且將始終為 0,因為您每次迭代都會重新定義它。 你可以這樣做:

for(int i = 0; i < 4; i++) {

    int x = 0;
    System.out.println("test" + i);
    x++;

}

或這個:

int x = 0;
for(int i = 0; i < 4; i++) {

    System.out.println("test" + x);
    x++;

}

因為您在每次迭代中都定義了x x放在循環之外。 它上面。

int x = 0
for (...) { }
for (int i = 0; i < 4; i++) {
    System.out.println("test"+i);
}

或 // 如果你堅持使用 x!

for (int i = 0; i < 4; i++) {
    int x = i;
    System.out.println("test"+x);
}

您可以在Oracle 'for Statement' 文檔中找到一個非常相似的示例:

for 語句提供了一種在一系列值上迭代的緊湊方法。 程序員經常將其稱為“for 循環”,因為它重復循環直到滿足特定條件。 for 語句的一般形式可以表示如下:

for (initialization; termination; increment) { statement(s) }

使用此版本的 for 語句時,請記住:

  • 初始化表達式初始化循環; 它在循環開始時執行一次。
  • 當終止表達式的計算結果為假時,循環終止。
  • 增量表達式在循環的每次迭代后調用; 這個表達式增加或減少一個值是完全可以接受的。

你需要在循環外聲明x ,否則每次迭代后它都會被設置為 0 。 因此,在您的情況下,它將是:

int x = 0;
for (int i = 0; i < 4; i++) {
    System.out.println("test" + x);
    x++;
}

對於這個例子,你不需要聲明兩個變量,你可以通過使用為循環聲明的變量來獲得相同的結果:

for (int i = 0; i < 4; i++) {
    System.out.println("test" + i);
}

由於這篇文章有很多類似的答案,我將參考另一種執行此特定循環的方法,該方法取自Oracle 的“for 語句”文檔,即“增強的 for 循環遍歷數組”:

 int[] numbers = {0,1,2,3};
 for (int item : numbers) {
   System.out.println("test" + item);
 }

您使用賦值運算符=將值0分配給x 您的變量x每次更新為0 所以它打印出來: test0 test0..... 因為它在for循環內。

如果變量x是在 for 循環之外聲明的,此時x未更新為0 ,則它剛剛更新為x=x+1表示++運算符。 所以它會增加並完美地工作。 還有一件事,這里的x是 for 循環的全局變量,可以在 for 循環內部訪問。 請看下面的代碼。

int x = 0;
for (int i = 0; i < 4; i++) {
    System.out.println("test"+x);
    x++;
}

您已使用 x 作為打印出的變量。 您應該考慮變量 x 的范圍。 每次循環再次運行時,x 將其值重置為 0,因為它是在循環內聲明的。 最后增加 x 對您沒有幫助,因為在運行下一次循環迭代時 x 的值會重置為 0。 相反,用i替換 x 或在循環外聲明一個新變量。

for(int i = 0; i < 4; i++) {

    int x = 0;
    System.out.println("test" + i);
    x++;

}

或者你可以做

int a = 0;
for(int i = 0; i < 4; i++) {
System.out.println("test" + a);
a++;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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