水平打印循环输出?

时间:2014-02-27 05:45:31

标签: java for-loop

嘿伙计们,我必须为课程编写一个程序,要求我根据销售人员当月销售的汽车数量生成一个条形图。一个例子是:

Pam XXXX

Leo XXXXXX

我几乎在那里,但并不完全。截至目前,我可以在销售人员名称旁边找到一个X,但其他任何一个都在不同的行下面打印。

Pam X 

X


X

如果你可以帮助我在同一条线上获得其他X,我会非常感激。感谢您的投入!

import java.util.Scanner;
public class BarGraph
{
    public static int Pam = 0;
    public static int Leo = 0;
    public static int Kim = 0;
    public static int Bob = 0;

    public static Scanner kb = new Scanner(System.in);

    public static void main(String args[])
    {
        System.out.println("Enter number of cars sold by Pam ");
        Pam = kb.nextInt();
        kb.nextLine();
        System.out.println("Enter number of cars sold by Leo ");
        Leo = kb.nextInt();
        kb.nextLine();
        System.out.println("Enter number of cars sold by Kim ");
        Kim = kb.nextInt();
        kb.nextLine();
        System.out.println("Enter number of cars sold by Bob ");
        Bob = kb.nextInt();
        kb.nextLine();

        System.out.print("Pam "); pamsCars();
        System.out.print("Leo "); leosCars();
        System.out.print("Kim "); kimsCars();
        System.out.print("Bob "); bobsCars();
    }

    public static void leosCars()
    {
        for(int i=0; i < Leo; i++)
        {
            printX();
        }
    }

    public static void kimsCars()
    {
        for(int i=0; i < Kim; i++)
        {
            printX();
        }
    }

    public static void pamsCars()
    {
        for(int i=0; i < Pam; i++)
        {
            printX();
        }
    }

    public static void bobsCars()
    {
        for(int i=0; i < Bob; i++)
        {
            printX();
        }
    }

    public static void printX()
    {
        System.out.println("X");
    }
}

8 个答案:

答案 0 :(得分:4)

您正在使用System.out.println("X");这会自动将换行符添加到字符串的末尾。

而是使用System.out.print("X");打印彼此相邻的X.

答案 1 :(得分:1)

你不能使用

System.out.printf("%s",x); 

以及?

System.out.printf("%n%s",x);

我自己没有尝试过这个循环,但我很确定其中一个也可以作为替代方案......%n会给你与println相同的结果,只要你去printf和%n ...当你使用println时,它与\ n的转义序列相同。

我刚刚在课堂上了解到这一点,所以我认为我分享了我的基本知识...下周中期,所以我有编程热。

答案 2 :(得分:0)

在printX函数中使用print代替println具体。

因为println打印并添加了break(换行符)

答案 3 :(得分:0)

public static void printX()
    {
        System.out.println("X");  // println() puts newline character.. use print()
    }

答案 4 :(得分:0)

进行以下更改:

 System.out.print("Pam "); pamsCars();System.out.println("");

 public static void printX()
    {
        System.out.print("X");
    }

正如其他人所说,“println()”方法在行的末尾添加了一个“\ n”。

答案 5 :(得分:0)

更改printX()方法,不要打印换行符,并更改printCar()签名以接受要打印的X的名称和数量。

public static void printX()
{
    System.out.print("X");
}

public static void printCars(String name, int num)
{
    System.out.print(name);
    for(int i=0; i < num; i++)
    {
        printX();
    }
    System.out.println();
}

现在你可以像

一样打电话给他们
printCars("Pam ",Pam));
printCars("Bob ",Bob));

答案 6 :(得分:0)

以下情况如何(抱歉没有经过测试,因此原则上只考虑了更多关于循环替代的方法)。

当然缺点是用户可以输入超过10个。

如果用户输入10,000又会怎么样? (你真的想打印10,000张X&#39> )。也许要考虑一下。

import java.util.Scanner;
public class BarGraph
{
    public static int Pam = 0;
    public static int Leo = 0;
    public static int Kim = 0;
    public static int Bob = 0;

    public static Scanner kb = new Scanner(System.in);

    //Assume max sales of 10
    public static final String maxsales = "XXXXXXXXXX"; //+++++NEW

    public static void main(String args[])
    {
        System.out.println("Enter number of cars sold by Pam ");
        Pam = kb.nextInt();
        kb.nextLine();
        System.out.println("Enter number of cars sold by Leo ");
        Leo = kb.nextInt();
        kb.nextLine();
        System.out.println("Enter number of cars sold by Kim ");
        Kim = kb.nextInt();
        kb.nextLine();
        System.out.println("Enter number of cars sold by Bob ");
        Bob = kb.nextInt();
        kb.nextLine();

        printCars("Pam",pam);  //+++++NEW
        printCars("Leo",leo);  //+++++NEW
        printCars("Kim",kim);  //+++++NEW
        printcars("Bob",bob);  //+++++NEW

    }

    //+++++NEW All other methods/functions replaced by this one
    public static void printCars(String person, int sales) {
        system.out.println(person + " " + maxsales.substr(sales));
    }
}

答案 7 :(得分:-2)

int n = 20;
for(int i = 0; i <= n; i++) {
    System.out.print(" " + i);
}