黑马程序员技术交流社区

标题: 嵌套循环练习,实现沙漏状图形,有没有更好的实现方... [打印本页]

作者: 杨永峰    时间: 2012-5-19 20:12
标题: 嵌套循环练习,实现沙漏状图形,有没有更好的实现方...
本帖最后由 杨永峰 于 2012-5-19 20:21 编辑

寻觅更好的、不同思路的实现方法。
代码:
class Sentence{
        public static void main(String[] args){
                for(int x = 1;x <=5;x++){
                        for(int y = 1;y <=x-1;y++){
                                System.out.print(" ");
                        }
                        for(int z = x;z <= 5;z++){
                                System.out.print("*"+" ");
                        }
                        System.out.println();
                }
                for(int x = 1;x <=4;x++){
                        for(int y = x;y <=3;y++){
                                System.out.print(" ");
                        }
                        for(int z = 0;z <= x;z++){
                                System.out.print("*"+" ");
                        }
                        System.out.println();
                }
        }
}

需求:





作者: 李哲    时间: 2012-5-19 20:59
学习你的原理,使用了一下绝对值。毕竟是对称,所以用绝对值将代码减半。
先这样。
  1. public class Sentence{
  2.     public static void main(String[] args){
  3.             for(int x =-4;Math.abs(x)<=4;x++){
  4.                     for(int y = 0;y <=Math.abs(Math.abs(x)-4);y++){
  5.                             System.out.print(" ");
  6.                     }
  7.                     for(int z = 0;z <= Math.abs(x);z++){
  8.                             System.out.print("*"+" ");
  9.                     }
  10.                     System.out.println();
  11.             }
  12.     }
  13. }
复制代码

作者: 李哲    时间: 2012-5-19 20:59
本帖最后由 李哲 于 2012-5-20 06:55 编辑

呵呵。重复的回复不好。
作者: 李哲    时间: 2012-5-19 21:01
网速慢,发了两次,抱歉!{:soso_e110:}
作者: 杨永峰    时间: 2012-5-19 21:10
李哲 发表于 2012-5-19 20:59
学习你的原理,使用了一下绝对值。毕竟是对称,所以用绝对值将代码减半。
先这样。 ...

{:soso_e142:},精简了这么多冗余代码

作者: 袁錦泰    时间: 2012-5-19 23:23
李哲 发表于 2012-5-19 20:59
学习你的原理,使用了一下绝对值。毕竟是对称,所以用绝对值将代码减半。
先这样。 ...

哥们儿 能为我讲解一下你写的代码吗? 谢谢了。
作者: 李斌    时间: 2012-5-20 01:03
李哲 发表于 2012-5-19 20:59
学习你的原理,使用了一下绝对值。毕竟是对称,所以用绝对值将代码减半。
先这样。 ...

厉害~~!~~~~~
作者: 李哲    时间: 2012-5-20 07:01
袁錦泰 发表于 2012-5-19 23:23
哥们儿 能为我讲解一下你写的代码吗? 谢谢了。

我记得毕老师的原理好像和楼主的不一样。
我其实是在楼主的原理基础上修改。
你只要明白Math.abs()的使用,实在不行,在纸上稍微画一下就会明白。

作者: 袁錦泰    时间: 2012-5-20 10:37
李哲 发表于 2012-5-20 07:01
我记得毕老师的原理好像和楼主的不一样。
我其实是在楼主的原理基础上修改。
你只要明白Math.abs()的使用 ...

我記得C語言的時候好像學過這東西,但我想不起來了.我就是想和你請教一下這個絕對值的概念,因為我看到你在第一個內循環中將這玩意兒當做參數用,我一看當時就蒙了. 這個我弄懂之後,思路就能整理出來了,你這程序寫得比較高級,所以我得和你學習學習裏面的精華.
作者: 李哲    时间: 2012-5-20 10:52
袁錦泰 发表于 2012-5-20 10:37
我記得C語言的時候好像學過這東西,但我想不起來了.我就是想和你請教一下這個絕對值的概念,因為我看到你在 ...

绝对说不上什么高级。简单一点代码。
感觉多线程难得多。
互相学习。呵呵。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2