这本来就这样嘛
改后是这样的
********
****************
********
****************
********
****************
********
****************

解决方案 »

  1.   

    我的意思是为什么造成两种不同的情况?请详解
      

  2.   

    第一次打印是
            else
               {
                result="********";
                System.out.println(result);
               }这段代码,然后就换行再准备下一次打,你的代码每打印一次就换行
    第二次打印是
            if (i%2==0)
               {
                result=" "+"********";
                System.out.println(result);
               }这一段代码,由于换行了所以就先打一些空格,现打”*“然后就是循环不断的重复上面的结果。如果把上面的 result=" "+"********",改为result=result+"********",
    因为首先是单数循环,而且每次的单数循环时result的值都被重新赋值了,以前的改变不起作用了,重新赋值后result前面是没有空格的,所以再找印的时候就是从第一个字符位置开始打印起。而双数循环是则是先打印单数循环时result的值,然后再打印加上的"********"这一部分字符,所以就是这种结果。
    ********          (i=1)
    ****************  (i=2)
    ********          (i=3)result被重新赋值为******** 
    ****************  (i=4)打印result+“*********”
    ********          (i=5)result被重新赋值为******** 
    ****************
    ********
    ****************
    这些都是最基本的数据结构里的知道,仔细分析一下就知道了。