繁体   English   中英

水平打印循环 output?

[英]Print loop output horizontally?

大家好,我必须为 class 编写一个程序,要求我根据销售人员当月售出的汽车数量生成一个条形图。 一个例子是这样的:

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

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

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

你不能用

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

还有?

要么

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

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

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

在printX函数中使用print而不是println是特定的。

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

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

进行这些更改:

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

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

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

更改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));

下面的内容如何(抱歉没有经过测试,原则上只是一个,而且更多的是对一个替代循环的方式)。

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

如果用户输入10,000,那又怎么样? 你真的想打印10,000张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);

    //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));
    }
}
// Incrementing by one in Java
for (int i=0; i<10; i++) {
    System.out.println(i);
}
        
// Incrementing by one
// Printing Horizontally
for (int i=0; i<10; i++) {
    System.out.print(" " + i);
}
int n = 20;
for(int i = 0; i <= n; i++) {
    System.out.print(" " + i);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM