如何使用for循环,if else语句和System.out.println在java中创建一个网格

时间:2013-10-29 21:09:35

标签: java

请帮助,我必须为我的编程班制作一个带有插孔面孔的20 x 20网格星号。我似乎无法将它变成网格。它以长垂直线打印出来,脸部的部分随机在一起。这就是我到目前为止所做的:

public class DottinoN_ExtraCredit
{
  public static void main (String [] args)
  {
    int row, col;
    for(row = 0; row < 20; row++)
    {
      for(col = 0; col < 20; col++)
      {
        if((row == 2) && (col == 2) ||(row == 2) && (col == 3) || (row == 2) && (col == 4) || (row == 3) && (col == 2)
             || (row == 3) && (col == 4) || (row == 4) && (col == 2) ||(row == 4) && (col == 3) || (row == 4) && (col == 4)
             || (row == 2) && (col == 15) ||(row == 2) && (col ==16) || (row == 2) && (col == 17) 
             || (row == 3) && (col == 15) || (row == 3) && (col == 17) 
             || (row == 4) && (col == 15) ||(row == 4) && (col == 16) || (row == 4) && (col == 17))
        {
          System.out.print("O");
        }
        else
        {
          if((row == 7) && (col == 9) || (row == 7) && (col == 10) || (row == 8) && (col == 8) || (row == 8) 
               && (col == 9) || (row == 8) && (col == 10) || (row == 8) && (col == 11)) 
          {
            System.out.print("X");
          }
          else
          {
            if((row == 13) && (col == 5) || (row == 13) && (col == 6) || (row == 13) && (col == 7) || 
               (row == 13) && (col == 8) || (row == 13) && (col == 9) || (row == 13) && (col == 10) || 
               (row == 13) && (col == 11) || (row == 13) && (col == 12) || (row == 13) && (col == 13) || 
               (row == 13) && (col == 14) || (row == 14) && (col == 5) || (row == 14) && (col == 6) || 
               (row == 14) && (col == 7) || (row == 14) && (col == 8) || (row == 14) && (col == 9) || 
               (row == 14) && (col == 10) || (row == 14) && (col == 11) || (row == 14) && (col == 12) || 
               (row == 14) && (col == 13) || (row == 14) && (col == 14))
            {
              System.out.println("|");
            }
            else
            {
              System.out.print("*");
          }
          }
        }
        System.out.println("");
      }
    }
  }
}

3 个答案:

答案 0 :(得分:1)

尝试将System.out.println("|");更改为System.out.print("|"); - 你真的不想在那里换行。

答案 1 :(得分:0)

为什么如此复杂和不舒服?

public void printFigure() {

String[] l = new String[20];
int p = 0;
//       01234567890123456789
l[p++]= "XOOOO----OOOOOOOOOX";
l[p++]= "XOOO(....)OOOOOOOOX";
l[p++]= "XOOOO-----OOOOOOOOX";
l[p++]= "XOOOOXXXOOOOOOOOOOX";
// Add the remaining lines 
 ---
for (int i = 0; i < l.length; i++) {
  System.out.println(l[i];
}
}

但希望允许一个数组,否则这个编程任务毫无意义。

答案 2 :(得分:0)

最后一个System.out.println("");在列的末尾执行。基本上,您将每一列都放在一个新行中。这就是为什么你会得到一个巨大的垂直线。