带有星号的java棋盘格模式

时间:2016-09-27 04:33:10

标签: java

我已经查看了很多帖子,他们已经帮了很多忙,但没有人覆盖我的问题。我试图打印出一个交替的棋盘图案来进行课堂作业。从第一行开始的输出和每个奇数行在结尾处都有一个额外的打印。它应该基本上重复8x8模式。这是我的代码和输出的截图。

我需要知道如何更改代码,这样我只能在奇数行中获得8个星号而不是现在显示的9个星号。

public class Checkerboard {

    public static void main(String[] args) {

        int length = 16;
        int height = 8;

        for (int i = 0; i <= height; i++)
        {
            if (i % 2 == 0)
            {
                System.out.print("* ");
            }
            else
            {
                System.out.print(" ");
            }
            for (int j = 0; j <= length; j++)
            {
                if (j % 2 == 0)
                {
                    System.out.print(" ");
                }
                else
                {
                    System.out.print("* ");
                }
            }
            System.out.println("");
        }
    }
}

output

2 个答案:

答案 0 :(得分:0)

这对我有用。如果条件为j!= length ||,我将最后一个else语句更改为else i%2!= 0所以现在如果它是一个奇数行,它将不会打印出额外的&#39; *&#39;最后。

public class mainTest {

public static void main(String[] args) {

    int length = 15;
    int height = 8;

    for (int i = 0; i <= height; i++)
    {
        if (i % 2 == 0)
        {
            System.out.print("* ");
        }
        else
        {
            System.out.print(" ");
        }
        for (int j = 0; j <= length; j++)
        {
            if (j % 2 == 0)
            {
                System.out.print(" ");
            }
            else if (j != length || i % 2 != 0)
            {
                System.out.print("* ");
            }
        }
        System.out.println("");
    }
}
}

答案 1 :(得分:0)

虽然下面的代码段没有优化,但它应该适合你。有简化的范围。试试吧。

public static void main(String[] args) {
    int length = 16;
    int height = 8;

    for (int i = 0; i <= height; i++) {
        char first = ' ';
        char second= '*';
        if (i % 2 == 0) {
            first = '*';
            second = ' ';
        }
        for (int j = 0; j < length; j++) {
            if (j % 2 == 0) {
                System.out.print(first);
            } else {
                System.out.print(second);
            }
        }
        System.out.println("");
    }
}