/*--------流程控制练习---------*/
// 先画行
// 找每一行内容的规律
//练习1. 打印一行 ****** m个
// 2. 打印 n行 m个******
// 打印n行m列的 矩形
//
int n = 3;
//
int m = 5;
//
//总共 n行
//
for(int j=1; j<=n;j++){
//
//每次 连续 的 m个*
//
for(int i = 1; i<=m;i++){
//
System.out.print("*");
//
}
//
//
//换行
//
System.out.println();
//
}
//练习: n行的三角形
//* n次 每次( 当前次数个* + 换行)
//**
//***
//****
//
int n=10;
//
//循环n次
//
for(int i=1;i<=n;i++){
//
//i个*
//
for(int j=1; j<=i ; j++){
//
System.out.print("+");
//
}
//
//
//换行
//
System.out.println();
//
}
//***** n行
//**** n次 每次 n-i+1 *+换行
//***
//**
//*
//
int n=10;
//
//循环n次
//
for(int i=1;i<=n;i++){
//
//总行数-当前行数+1 个*
//
for(int j=1; j<=n-i+1 ; j++){
//
System.out.print("+");
//
}
//
//
//换行
//
System.out.println();
//
}
//---* n行 n次 每次 一些个空格 +i个*+换行
//--**
//-***
//****
//---* *** 顶 m n行
// ** * ***
// *** ** ***
//**** *** ***
//
int m = 7;
//
int n=5;
//
//
//n次循环
//
for(int i=1;i<=n;i++){
//
//连续的空格 n-i个
//
for(int j=1;j<=n-i;j++){
//
System.out.print(" ");
//
}
//
//
//连续的* 2*i-1个
//
for(int j=1;j<=i+i-1+m-1;j++){
//
System.out.print("*");
//
}
//
//
//换行
//
System.out.println();
//
}
//练习
//--- A 1
// AB A 12 1
// ABC BA 123 21
// ABCD CBA 1234 321
//ABCDE DCBA
//
int n=5;
//
//
//n次循环
//
for(int i=1;i<=n;i++){
//
//连续的空格 n-i个
//
for(int j=1;j<=n-i;j++){
//
System.out.print(" ");
//
}
//
//
//连续的字母 i个 从A 递增
//
// 这部分的第几个 就打印数字几 再转化为字母
//
for(int j=1;j<=i;j++){
//
System.out.print( (char)('A'+j-1));
//
}
//
//
//连续的字符 i-1个 'A'+i-1 递减
//
// 从i开始 i-这部分的第几个
//
for(int j=1;j<=i-1;j++){
//
System.out.print( (char)('A'+i-j-1));
//
}
//
//
//换行
//
System.out.println();
//
}
//练习: 画棵圣诞树
// * 第一部分 n1行
// ***
// *****
// *******
// * ** 第二部分 n2行 顶部m2个(默认奇数)
// *** **
// ***** **
//******* **
// *** 第三部分 n3行 m3列(默认奇数)
// ***
// ***
//条件
int n1=5;
int n2=7;
int m2=5;
int n3=4;
int m3=3;
int max1 = 2*n1-1;//树冠宽度
int max2 = 2*n2-1 + m2-1;//第二部分
int max3 = m3;
int offset1 = (max2-max1)/2;
int offset2 = (max2-max3)/2;
//树冠部分
for(int i=1;i<=n1;i++){
//每行先空格 + 多出一些做偏移
for(int j=1;j<=n1-i+offset1;j++){
System.out.print(" ");
}
//再*
for(int j=1;j<=2*i-1;j++){
System.out.print("*");
}
//再换行
System.out.println();
}
//中间部分
for(int i=1;i<=n2;i++){
//每行先空格
for(int j=1;j<=n2-i;j++){
System.out.print(" ");
}
//再* 比第一部分多 m2-1个
for(int j=1;j<=2*i-1+m2-1;j++){
System.out.print("*");
}
//换行
System.out.println();
}
//树干部分
for(int i=1;i<=n3;i++){
//为了对齐 有些空格
for(int j=1;j<=offset2;j++){
System.out.print(" ");
}
for(int j=1;j<=m3;j++){
System.out.print("*");
}
System.out.println();
}
}
}