[英]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.