我已经查看了很多帖子,他们已经帮了很多忙,但没有人覆盖我的问题。我试图打印出一个交替的棋盘图案来进行课堂作业。从第一行开始的输出和每个奇数行在结尾处都有一个额外的打印。它应该基本上重复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("");
}
}
}
答案 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("");
}
}