簡體   English   中英

Java不會在for循環中打印

[英]Java won't print inside a for loop

我最近一直在玩Java,我遇到了一個問題:

每當我將System.out.println()System.out.print()放在for循環中時,控制台上都沒有輸出。

例如:

package experimental;

public class Main {
    public static void main(String args[]) {
        recur();
    }

    public static void recur() {
        for(int x = 0; x == 10; x++) {
            for(int y = 0; y == 10; y++) {
                System.out.print(x + "-" + y + " ");
            }
        }
    }
}

輸出:

*crickets*

循環條件不true ,甚至有...開始x == 10是不是truex = 0 如果是的話,你也會注意到第二個循環條件也不是true開始; 類似地, y == 10不是真的,因為y = 0 你可能會把這種狀況與一個人混淆停下來

for(int x = 0; x == 10; x++) {
     for(int y = 0; y == 10; y++) {

如果您希望xy與[ y不同,請更改為以下內容:

for(int x = 0; x < 10; x++) {
    for(int y = 0; y < 10; y++) {

......或[0,10]的以下內容:

for(int x = 0; x <= 10; x++) {
    for(int y = 0; y <= 10; y++) {

你的問題在於for循環中的條件。 它說:

以x = 0開始,循環,x為10

這不是真的,所以循環立即退出。

您需要將其替換為:

for (int x = 0; x < 10; x++)

(假設你要循環10次)

那些for循環永遠不會循環。

只要終止條件真,它們才會循環。 作為終止條件,您有: x == 10y == 10 由於將xy初始化為0 ,因此這些條件永遠不會成立,並且循環是無操作。

我想你想要,例如: for (int x = 0; x < 10; x++)

for(int x = 0; x == 10; x++) {
    for(int y = 0; y == 10; y++) {
        System.out.print(x + "-" + y + " ");
    }
}

x == 10條件將失敗,循環將中斷,蟋蟀。 與其他循環條件相同。

您的代碼永遠不會到達for循環的主體,因為在啟動循環之前,條件x==10已經為假。 我認為你應該寫x != 10而不是。 內循環也是如此。

由於每個人都已經回答了你的問題,我想補充一些調試技巧。 首先,我建議使用NetBeans或Eclipse等IDE。 這兩個中的調試器將允許您逐行逐步執行代碼以查看其執行方式。 這樣做,您很快就會注意到您的for循環已被完全跳過。 如果您不能或不願意這樣做。 接下來最好的事情是在代碼中添加SOP( System.out.println() )。 即使它只是一個簡單的消息,例如"Here"來告訴您在代碼中的位置,這個額外的輸出可以幫助您跟蹤邏輯中的錯誤。

你不能使用x == 10 比較需要以這種方式表達:

for(int x = 0; x <= 10; x++) {
   for(int y = 0; y <= 10; y++) {
     System.out.print(x + "-" + y + " ");
   }
}

暫無
暫無

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

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