沙漏图形打印

在Java中,一下代码输入结果如图所示,横线处的代码应该是()

public class Test{

 public static void main(string[]args){

        for(                  ){

      for (int k=0;k<=2-Math.abs(i);k++){

          System.out.Print(“”)

      }

   for (int j=0;j<Math.abs(i)2+1;J++){

     System.out.Print(“*”)

   }

   System.out.Println();

}

}

A int i=0;i<5;i++

B int i=4;i>=0;i--

C int i=-2;i>=2;i++

D int i=2;i>=-2;i=i-1

 首先看A选项,将条件带入题目,int i=0;i<5;i++,这一条件成立,通过第一层循环,进入到二层循环的第一个循环,math.abs为绝对值,带入,得出          k=0;k<=2;k++;循环两次,打印出两个空格,但由图形看出第一行是打印出五个*,没有空格,所以A选项错误。

 B选项,int i=4;i>=0;i--,条件成立,进入二层循环的第一个循环,得出k=0;k<=-2;k++,条件不成立,所以B选项错误。

 C选项,int i=-2;i>=2;i++,条件不成立,-2永远不可能大于2,所以C选项错误。

 由以上得出D选项正确。下面来分析一下D选项:

 D选项,int i=2;i>=-2;i=i-1,条件成立,进入二层循环的第一个循环,得出k=0;k<=0;k++,条件成立,打印零个空格,跟图片相符。进入二层循环的第二个循 环,得出int j=0;j<5;j++,条件成立,循环五次,打印出五个*,跟图形相符,所以D选项正确。

原文地址:https://www.cnblogs.com/zhangzhenzhen/p/5253515.html