我的java代码没有返回预期的输出

时间:2014-07-25 11:53:59

标签: java

public class Test1 {
    public static void main(String[] args) {
        int x = 0;
        while(x < 1) {
            System.out.print("a");
            if(x < 1)
                System.out.print(" ");

            x = x + 2;
            if(x > 1) {
                System.out.println("noise");
                x = x - 1;
            }

            if(x == 1)
                System.out.println("annoys");

            if(x > 0)
                System.out.println("an");

            System.out.print("");
            System.out.print("oyster");
        }
    }
}

我正在编写此代码以获得如下输出:

a noise
annoys 
an oyster

但是在运行我的代码之后它会在不同的行中打印“an”和“oyster”,我是java的初学者,请帮助我并告诉我为什么我没有得到正确的输出。

6 个答案:

答案 0 :(得分:1)

println()写入字符串,然后将光标移动到下一行。 你想要的是:

public class Test1 {
    public static void main(String[] args) {
        int x=0;
        while(x<1){
            System.out.print("a");
            if(x<1){
                System.out.print(" ");
            }
            x=x+2;
            if(x>1){
                System.out.println("noise");
                x=x-1;
            }
            if(x==1){
                System.out.println("annoys");
            }
            if(x>0){
                System.out.print("an");
            }
            System.out.print(" ");
            System.out.print("oyster");
        }
    }
}

答案 1 :(得分:0)

而不是System.out.println("an");

使用System.out.print("an ");,您甚至可以删除System.out.print(" ");

public void println() - 通过写行分隔符字符串来终止当前行。行分隔符字符串由系统属性line.separator定义,不一定是单个换行符(&#39; \ n&#39;)。

请参阅basic difference between print() and println()

答案 2 :(得分:0)

print将字符串写入同一行,println写入下一行。

删除这个

 System.out.println("an");

并使用此

System.out.print("an");

答案 3 :(得分:0)

假设您不知道System.out.println()做了什么......

 **System.out.println("My name");**

首先打印我的名字,然后光标移动到下一行。

所以

 **System.out.print("an");
 System.out.print(" ");
 System.out.print("oyster");**

将为您提供所需的输出。

答案 4 :(得分:0)

首先,System.out.println();始终会打印传递给它的内容,然后是最后的换行符。因此,下一行打印的内容将打印在下一行。 如果您希望在同一行中打印该行,请使用System.out.print();

所以你需要这样做:

while(x<1){
            System.out.print("a");
            if(x<1){
                System.out.print(" ");
            }
            x=x+2;
            if(x>1){
                System.out.println("noise");
                x=x-1;
            }
            if(x==1){
                System.out.println("annoys");
            }
            if(x>0){
                System.out.print("an");
            }
            System.out.print(" ");
            System.out.print("oyster");
        }

答案 5 :(得分:0)

这是一个使用空格和选项的解决方案:

DirContext.search()

注意:除了带注释的块之外,任何if块都不允许添加2行以上。