黑马程序员技术交流社区

标题: 新人请教一个问题 [打印本页]

作者: 徐毅    时间: 2013-12-18 15:05
标题: 新人请教一个问题
各位大神,是想实现用*打印个字母A,以下是定义的函数的代码,感觉代码太多了,不知道可不可以进一步简化呢:
public static void getA()
{
  System.out.println("---------------------------------");
  for(int x = 1,z = 4;x <= 3;++x)
  {
   for(int y = x;y <= 5;++y)
   {
    System.out.print(" ");
   }
   for(int y = 1;y <= 5;++y)
   {
    System.out.print("*");
   }
   for(int y = 3;y <= x;++y)
   {
    System.out.print(" ");
   }
   for(int y = 2;y <= x;++y)
   {
    System.out.print(" ");
   }
   for(int y = 1;y <= z;++y)
   {
    System.out.print("*");
   }
   System.out.println();
   z = 5;
  }
  

  for(int a = 1,z = 5;a <= 3;++a)
  {
   for(int b = a;b <= 2;++b)
   {
    System.out.print(" ");
   }
   for(int b = 1;b <= 5;++b)
   {
    System.out.print("*");
   }
   for(int b = 1;a == 1 & b <= 5;++b)
   {
    System.out.print("*");
   }
   for(int b = 1;a == 2 & b <= 7;++b)
   {
    System.out.print(" ");
   }
   for(int b = 1;a == 3 & b <= 9;++b)
   {
    System.out.print(" ");
   }
   for(int b = 1;b <= z;++b)
   {   
    System.out.print("*");
   }
   System.out.println();
   z = 5;
  }
  System.out.println("---------------------------------");
}



作者: 刘松703    时间: 2013-12-18 15:50
只是觉得在简化也简化不多了,因为都是一些非常简单的基础语言,你这些做的都是一些重复的,区别就是循环的初始值和条件不同,还有你的变量最好自己标清楚,你觉得乱就是因为变量乱的缘故,看好那些变量的作用范围
作者: 風諾    时间: 2013-12-18 15:51
凑了个:
  1. package com.itheima.print;

  2. public class PrintA {
  3.         public static void main(String[] args) {
  4.                 for (int i = 1; i < 7; i++) {
  5.                         for (int j = 0; j < 15; j++) {
  6.                                 int dis = Math.abs(j - 6);
  7.                                 if (dis == i | dis == i-1) {
  8.                                         System.out.print("*");
  9.                                 } else if (dis < i & i == 4) {
  10.                                         System.out.print("*");
  11.                                 } else {
  12.                                         System.out.print(" ");
  13.                                 }
  14.                         }
  15.                         System.out.println();
  16.                 }

  17.         }

  18. }
复制代码

作者: 徐毅    时间: 2013-12-18 18:23
刘松703 发表于 2013-12-18 15:50
只是觉得在简化也简化不多了,因为都是一些非常简单的基础语言,你这些做的都是一些重复的,区别就是循环的 ...

恩恩  好的 谢谢
作者: 徐毅    时间: 2013-12-18 18:25
風諾 发表于 2013-12-18 15:51
凑了个:

谢谢 我研究研究
作者: 黄伟财    时间: 2013-12-19 15:33
你的代码我看过了,你可以这样,首先,你的代码有很多是重复的,你可以考虑方法的重载,你要学会用重载的思想去简化你的程序,你可以去看看毕老师的基础视频,我觉得说的很详细,看了你就会明白的。
作者: 徐毅    时间: 2013-12-19 16:26
但是这些重复的代码中很多的初始值和条件都不同,不好重载




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