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");
 }

07-24 09:46
查看更多