打印棋盘格 - 代码编译但不输出我想要的内容

时间:2014-10-15 12:29:20

标签: java

我的代码编译,但它没有输出我想要的内容。

import java.util.Scanner;

public class Checkerboard {
    public static void main(String[] args) {
        int num, col;
        //Scanner for input
        Scanner keyboard = new Scanner(System.in);
        //Get input
        System.out.println("Enter a number: ");
        num = keyboard.nextInt();
        System.out.println("Enter the same number: ");
        col = keyboard.nextInt();

        for (int n = 0; n < num; n++) {
            for (int c = 0; c < col; c++) {
                System.out.print("* ");
            }
            System.out.println(" ");
        }
    }
}

正在输出模式 (如果N,C = 5)

* * * * * 
* * * * *
* * * * *
* * * * *
* * * * *

我想要的是

 * * * * * 
* * * * *
 * * * * * 
* * * * * 
 * * * * *

关于如何输出我想要的内容的任何提示?

4 个答案:

答案 0 :(得分:4)

插入

if(n%2==0){
  System.out.print(" ");

在内循环之前。

答案 1 :(得分:2)

目前,您在行的末尾添加空格而不是在下一行的开头添加空格,无论如何,您只想添加不在每一行上的空格,而只添加任何其他行。

    for (int n = 0; n < num; n++) {
        if (n % 2 == 0) {
            System.out.print(" ");
        }
        for (int c = 0; c < col; c++) {
            System.out.print("* ");
        }
        System.out.println();
    }

答案 2 :(得分:1)

只需将内部for循环更改为

即可
   if(n%2==0){
      System.out.print(" *");
     } else {
      System.out.print("* ");
   }

Out put:

  * * * * * 
 * * * * *  
  * * * * * 
 * * * * *  
  * * * * * 

答案 3 :(得分:0)

更改内部for循环:

  if(n%2==0){
          System.out.print(" *");
         } else {
          System.out.print("* ");
       }