Java 编译器运行时没有输出

Java 编译器运行时没有输出,java,while-loop,shapes,Java,While Loop,Shapes,我试着打印这个形状 通过使用此代码 int count= 1 , i = 0 , y =0 , sp = 4 , x = 1; while (sp >= 1) { for( i = 0; i <sp ; i++) { System.out.print(" "); } for ( y = 0 ; y

我试着打印这个形状

通过使用此代码

    int count= 1 , i = 0 , y =0 , sp = 4 , x = 1;
     
         while (sp >= 1)  { 
           for( i = 0;  i <sp ; i++) {
               System.out.print(" ");              
           }
           for ( y = 0 ; y < x ; y ++) {
               System.out.print("*"); 
           } 
   
           
           if (count ==1) {
               sp--;
               x+=2 ;
             System.out.println();
           }
           
           else if (count ==2) {
               sp++;
               x-=2;
           }
           if (sp == 1 && count == 1) {
                
               count++ ;
              i=0; y = 0;
              sp++ ; 
              x -=2 ; 
             
          }  
         
       }

但是什么也没有,编译器只是运行,没有输出,我刚玩完。从我所看到的,你的问题是,空间的数量总是大于1,就目前的情况而言

我建议使用另一个变量,即要打印的行数,如果您给出的结果是5行星。大概是这样的:

int rows = 5;
while (rows > 0) {
  // Your code here
  rows--;
}

当新行的计数为2时,您也会遇到一个小问题,但它有一个简单的解决方法。

为了给您一个在将来掌握Java时努力实现的目标,在Java 11及更高版本中,打印菱形可以像这样简单:

静态空隙打印钻石大小{ 对于int i=1-size;i 打印钻石2; 打印钻石4; 打印钻石7; 打印钻石10; 输出

* *** * * *** ***** ******* ***** *** * * *** ***** ******* ********* *********** ************* *********** ********* ******* ***** *** * * *** ***** ******* ********* *********** ************* *************** ***************** ******************* ***************** *************** ************* *********** ********* ******* ***** *** *
您确定它正在主函数内运行吗?是的,如果我删除此部分,它将运行;如果count==0{sp++;x-=2;}如果sp==1&&count==1{count++;i=0;y=0;sp++;x-=2;}然后打印半个图形,然后单击System.out.printsp;在while循环并验证sp确实是4之前,我这样做了,它确实是4@Shachaf.Gortlertry adding System.console.readLine;最后,out的输出可能会被定向到一个窗口,该窗口在执行完成时关闭。非常感谢您,这非常简单!!!