带用户输入的空心盒程序。问题:适用于奇数输入,而不适用于偶数

时间:2018-10-14 17:34:32

标签: java for-loop formatting

如果用户输入为奇数并且在此范围内,则可以正常工作。似乎无法弄清楚如何使它与偶数输入一起使用。

我已经看到在其他帖子上有一种“简便”的方法可以执行此程序,但是我必须自己解决这个问题,然后才能查找任何问题并想知道是否有任何方法可以使此工作有效通过这种方法。

import java.util.Scanner;

public class Lab7_3{

  public static void main(String args []){

    Scanner input = new Scanner(System.in);

    char userStart;
    int countA=1, countB=1, rowsColumns;

    System.out.println("Do you want to start?");

    userStart = input.next().charAt(0);

    while (userStart == 'Y' || userStart == 'y'){

      System.out.println("How many rows/columns? (5-21)");

      rowsColumns = input.nextInt();

      while (rowsColumns < 5 || rowsColumns > 21){

       System.out.println("Invalid range. Reenter (5-21)");

       rowsColumns = input.nextInt();

      }//end while3

      for(countA = 1; countA <= rowsColumns; countA++){

        System.out.println("");

        for(countB = 1; countB <= rowsColumns; countB++){

          if((rowsColumns % countA) == 0 || (rowsColumns % countB) == 0)){

            System.out.print("*");

          }//end if 

          else{

            System.out.print("1");

          }//end else

        }//end for2


      }//end for

      System.out.println("\nDo you want to continue? (Y/N)");

      userStart = input.next().charAt(0);

    }//end while

  }//end main
}//end class

1 个答案:

答案 0 :(得分:0)

if((rowsColumns % countA) == 0 || (rowsColumns % countB) == 0))行给出了错误的结果。

if(countA==1 || countA == rowsColumns || countB == 1 || countB == rowsColumns)适用于奇数和偶数。