簡體   English   中英

System.out.println 不打印沒有參數的行?

[英]System.out.println doesn't print a line with no parameters?

public class Test2 {
    public static void mystery(int x, int y, boolean b, String s) {
        System.out.println(x*3 + "..." + x/y);
        if (b)
            System.out.println("yes");
        else
            System.out.println("no");
        for (int i = 2; i <= 5; i++)
            System.out.print(2*i);
        System.out.println();
        System.out.println((double)(y/x));
        System.out.println(s.substring(3,7));
     } // end mystery

     public static void main(String[] args) {
         mystery(7,3,true,"freezing");
     }
}

我有點困惑,我想我錯過了一些東西。 為什么這段代碼中for循環的輸出是46810? 每個數字之間不應該有一條線嗎?

在我看來,您希望循環看起來像這樣:

for (int i = 2; i <= 5; i++)
 System.out.print(2*i);
 System.out.println();

但是for僅適用於第一個語句。 要在循環中包含多個語句,您需要將循環體括在花括號中:

for (int i = 2; i <= 5; i++) {
 System.out.print(2*i);
 System.out.println();
}

最好在編寫for循環時始終使用大括號,以及whiledoifelse ,即使該語言允許您在沒有大括號的情況下只有一個語句的主體。 例如:

 if (b) {
     System.out.println("yes");
 } else {
     System.out.println("no");
 }

不適用於System.out.print(2 * i); . 對於您似乎期望將其更改為的輸出,

System.out.println(2 * i);

或將大括號添加到您的for循環中,例如,

for (int i = 2; i <= 5; i++){
    System.out.print(2*i);
    System.out.println();
}

Java 循環不受縮進控制,您需要大括號來包含多於一行。

嘗試這個:

for (int i = 2; i <= 5; i++)
{
    System.out.print(2*i);
    System.out.println();
    System.out.println((double)(y/x));
    System.out.println(s.substring(3,7));
}

當您使用for循環時,建議將其中的代碼放在花括號{}

for 循環邏輯必須包含在{}

暫無
暫無

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

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