System.out.println不打印没有参数的行? (JAVA)

时间:2015-04-18 06:03:34

标签: java parameters println

 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?每个数字之间不应该有一条线吗?

由于

4 个答案:

答案 0 :(得分:2)

在我看来,你希望你的循环看起来像这样:

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

答案 1 :(得分:1)

不在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循环不受缩进控制,你需要大括号来包含多行。

答案 2 :(得分:1)

试试这个:

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循环时,建议将代码放在花括号{}中。

答案 3 :(得分:0)

for循环逻辑必须包含在{}