哥们,你这代码有点小问题,打印结果是
A
ABA
ABCBA
ABCDCBA
65
你把最后一句System.out.println((int)'A');注释掉就可以了作者: zhaosenyang 时间: 2012-7-30 22:57
来看我做的吧。我昨天琢磨这个琢磨到凌晨。你现在学嵌套循环,估计后面数组还没学吧,这里我也没用数组。纯粹for循环。
这里我用宋体,宋体空格和+号占的位置一样。
/**
A
A B A
A B C B A
A B C D C B A
思路:上图可以分为三部分,
如图所示:(空格用+表示)
++++++A|
++++A B| A
++A B C| B A
A B C D| C B A
用一个for循环嵌套3个内循环来实现这三部分。
诀窍:执行结果尖朝上,可以改变条件,让条件随着外循环改变。尖朝下,可以改变初始化值,让初始化值随着外循环改变。
*/
class Test
{
public static void main(String[] args)
{
for(int a=1;a<=4;a++)
{
for(int b=a+1;b<=4;b++)//控制空格
{
System.out.print(" ");
}
for(int c=1;c<=a;c++)//控制左边四列字母
{
char ch=(char)(c+64);//1+64=65,即为'A','A'在ANSI中代表65.char ch=(char)('A'+c-1);这样写也可以,道理一样 你可以琢磨下
System.out.print(ch+" ");
}
for(int d=a-1;d>=1;d--)//控制右边三列字母。这里的条件控制,你可以试着改动一下,看看有什么变化 这样你能更好理解。
{
char ch=(char)(d+64);//char ch =(char)('A'+d-1)
System.out.print(ch+" ");
}
System.out.println();
}
}