A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 徐毅 高级黑马   /  2013-12-18 15:05  /  1075 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

各位大神,是想实现用*打印个字母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("---------------------------------");
}


评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

6 个回复

倒序浏览
只是觉得在简化也简化不多了,因为都是一些非常简单的基础语言,你这些做的都是一些重复的,区别就是循环的初始值和条件不同,还有你的变量最好自己标清楚,你觉得乱就是因为变量乱的缘故,看好那些变量的作用范围
回复 使用道具 举报
凑了个:
  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. }
复制代码
回复 使用道具 举报
刘松703 发表于 2013-12-18 15:50
只是觉得在简化也简化不多了,因为都是一些非常简单的基础语言,你这些做的都是一些重复的,区别就是循环的 ...

恩恩  好的 谢谢
回复 使用道具 举报

谢谢 我研究研究
回复 使用道具 举报
你的代码我看过了,你可以这样,首先,你的代码有很多是重复的,你可以考虑方法的重载,你要学会用重载的思想去简化你的程序,你可以去看看毕老师的基础视频,我觉得说的很详细,看了你就会明白的。

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
徐毅 高级黑马 2013-12-19 16:26:29
7#
但是这些重复的代码中很多的初始值和条件都不同,不好重载
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马