黑马程序员技术交流社区
标题:
重复的代码很多,怎么复用?
[打印本页]
作者:
极光_CDY
时间:
2015-3-18 23:36
标题:
重复的代码很多,怎么复用?
/*
打印图形,建立函数调用
A
BCD
EFGHI
JKLMNOP
QRSTUVWXY
ZYXWVUT
SRQPO
NML
K
思路: 1首先分为上下两部分三角来看
A
BCD
EFGHI
JKLMNOP
QRSTUVWXY
-------------------
ZYXWVUT
SRQPO
NML
K
2字母部分由于明显的累加性,可采用ASCII码进行强制类型转换
3处理上部分
4处理下部分
难点在于分析按abcde、、、z、、、bcabc顺序打印。
*/
class Demo //为方便建立类和主函数
{
public static void main(String[] args)
{
for(int x = 1; x<=10;x++)
lingXing(x);
}
public static void lingXing(int num) //定义不同行数菱形的打印
{
int count = 65;//输出字母
boolean b = true;//负责记录打印字母的状态
int state = 0;
for(int x = 1; x<=num;x++)//上半部分
{
for(int y = 1; y<=num-x;y++)
{
System.out.print(" ");
}
for(int y = 1;y<x*2;y++)
{
if(b)
{
System.out.print((char)count++);
if(++state==26)
{
b=!b; state=1;
count-=2;
}
}
else
{
System.out.print((char)count--);
if(++state==26)
{
b=!b;
state=1;
count+=2;
}
}
}
System.out.println();
}
for(int x = 1; x<num;x++)//下半部分
{
for(int y = 0; y<x;y++)
{
System.out.print(" ");
}
for(int y = 1;y<2*(num-x);y++)
{
if(b)
{
System.out.print((char)count++);
if(++state==26)
{
b=!b; state=1;
count-=2;
}
}
else
{
System.out.print((char)count--);
if(++state==26)
{
b=!b;
state=1;
count+=2;
}
}
}
System.out.println();
}
}
}
复制代码
作者:
胡谭龙
时间:
2015-3-19 10:40
把重复的写一个类,然后实例化调用,应该就差不多了
作者:
longlongint
时间:
2015-3-19 12:13
函数 调用 就是这么简单
作者:
埗箬
时间:
2015-3-19 12:55
封装啊,建立对应函数,然后调用函数。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2