为什么while循环不打印?

时间:2018-08-11 07:03:24

标签: java logic

尝试打印此图案

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

for和while循环无法正常工作。 逻辑有问题吗?

       public class Test {

           public static void main(String args[]) {
             for (int i = 1; i >= 4; i++) {
               for (int j = 1; j <= 7; j++) {
                 while (i + j >= 5 && (Math.abs(j - i)) <= 3) {
                   System.out.print("*");
                 }
                 System.out.print(" ");
               }
              System.out.println();
           }

       }

3 个答案:

答案 0 :(得分:5)

第一个for循环不正确:

for(int i=1;i>=4;i++)

此代码说,将i设置为1,而i大于或等于4时,递增i。由于i为1,因此条件永远不会过去。

使用IDE的顺便说一句将帮助您发现这样的错误,例如,这是intellij对这段代码的评价:

enter image description here

答案 1 :(得分:0)

我认为您正在尝试打印问题中提到的中心三角形图案。

这里是打印相同示例程序。

api/MyController/Get/...

这是输出

public class TestCenterTriangle {

   public static void main(String args[]) {
      printCenterTriangle(4);
   }

   private static void printCenterTriangle(int row) {
       for (int i = 1; i <= row; i++) {
           for (int space = 1; space <= (row - i); space++) {
               System.out.print(" ");
           }

           for (int j = 1; j <= i; j++) {
               System.out.print("*");
           }

           for (int k = (i - 1); k >= 1; k--) {
               System.out.print("*");
           }

           System.out.println();

        }
    }
}

答案 2 :(得分:-1)

 public class Test{

 public static void main(String args[]){

  int n =15;
  for(int i=0;i<=n;i+=2){
  for(int k=n-i;k>=0;k--)
   System.out.print(" "); 
   for( int j=1;j<=i+1;j++){
    System.out.print("* ");   
   }
    System.out.println();
    }
  }
 }       

遵循此方法。您可以得到输出:-

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