繁体   English   中英

如何将其转换为表格输出?

[英]How do I make this into a table output?

问题是让我掷两个骰子并将其输出分别打印在两个单独的列中,然后为两个掷骰的总和创建第三列。

import java.util.Random;

public class DiceRolls {
    public static void main(String[] args) {
        System.out.println("Dice 1\tDice 2");
        Random ran = new Random();

        int numberOne;
        for (int x = 0; x < 7; x++) {
            numberOne = ran.nextInt(6) + 1;
            System.out.println(numberOne);
        }

        int numberTwo;
        for (int y = 0; y < 7; y++) {
            numberTwo = ran.nextInt(6) + 1;
            System.out.println("    " + numberTwo);
        }
    }
}

我认为您在想这是错误的方式,并试图遍历一个骰子的所有卷, 然后遍历另一个骰子。 相反,如果您尝试同时掷两个骰子,则将它们添加并打印输出将使事情变得简单得多:

    //How many runs you want
    int numRuns = 7;

    for (int x = 0; x < numRuns; x++) {
        Random ran = new Random();
        int dieOne = ran.nextInt(6) + 1;
        int dieTwo = ran.nextInt(6) + 1;
        System.out.format("| Die 1:%3d| Die 2:%3d| Total:%3d|\n", dieOne, dieTwo, dieOne + dieTwo);
    }

此代码将掷出两个骰子7次,并将它们加在一起。 您可以更改numRuns的值以更改其运行次数。 然后,您可以使用System.out.formatString.format创建格式化的输出。

String.formatSystem.out.format所做的工作基本上是使用%3d以格式化的方式将变量(例如dieOne )放入String中。 %3d此示例可以分为3个基本部分。

  • 3代表允许变量使用的字符数,未使用的字符用多余的空格填充。

  • d是变量的类型(在本例中为int

  • %用于表示String中有一个变量
    在那个位置。

因此dieOne%3d用于将dieOnedieTwodieOne + dieTwo分别设置为String作为一个int每个int总共具有3个字符

在下面的编辑示例中, %4d%4d%5d总共有4个,4个和5个字符 ,分别将dieOnedieTwodieOne + dieTwo设置为。 选择的字符数用于匹配Die1Die2Total的标题的宽度。

编辑:如果您希望它看起来更像一个表,则可以这样打印:

    //How many runs you want
    int numRuns = 7;

    System.out.println("-----------------");
    System.out.println("|Die1|Die2|Total|");
    System.out.println("-----------------");
    for (int x = 0; x < numRuns; x++) {
        Random ran = new Random();
        int dieOne = ran.nextInt(6) + 1;
        int dieTwo = ran.nextInt(6) + 1;
        System.out.format("|%4d|%4d|%5d|\n", dieOne, dieTwo, dieOne + dieTwo);
    }
    System.out.println("-----------------");

暂无
暂无

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

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