目前网上有许多用for循环,在控制台打印*正方形、三角形、五边形等,但是大多都不够规整,作为程序员的入门案例,当然得做的漂漂亮亮、工工整整,才能切合程序员追求完美代码的态度。
正方形
int a = 5; //定义正方形 边长
for(int i=1;i<=a;i++){ //外层循环 正方形 行数:a
for(int j =1;j<=a;j++){ //内层循环 正方形 列数:a
System.out.print(" *"); //每一行打印a次" *"
}
System.out.println(); //打印完一行后换行
}
正方形 效果图:
等边三角形
int num1 = 5; //定义正三角形 边长
for(int i = 1;i<=num1;i++){ //外层循环 行数:num1
for(int j =num1;j>=i;j--){ //内层循环 每行空格数
System.out.print(" "); //每行打印的" "数 从num1到1递减 每次打印不换行
}
for(int j =1;j<=i;j++){ //内层循环 每行*数
System.out.print(" *"); //每行打印的" *"数 从1到num1递增 接着上面打印的" " 每次打印不换行
}
System.out.println(); //打印完一行后换行
}
等边三角形 效果图:
梯形
int hang = 5; //定义梯形 行数
int num2 = 6; //定义梯形 上底长度
for(int i =1;i<=hang;i++){ //外层循环 行数:hang
for(int j =hang;j>=i;j--){ //内层循环 每行空格数
System.out.print(" "); //每行打印的" "数 从hang到1递减 每次打印不换行
}
for(int j =1;j<num2+i;j++){ //内层循环 每行*数
System.out.print("* "); //每行打印的"* "数 从num2到num2+i-1递增 每次打印不换行
}
System.out.println(); //打印完一行后换行
}
梯形 效果图:
五边形
for(int i =1;i<4;i++){ //打印前3行
for(int j=4;j>=2*i-1;j--){ //打印空格 第一行4" " 第二行2" "
System.out.print(" ");
}
for(int j=1;j<=2*i-1;j++){ //打印* 第一行1"* " 第二行3"* " 第三行4"* "
System.out.print("* ");
}
System.out.println(); //打印完一行后换行
}
for(int i =1;i<=2;i++){ //打印后2行
for(int j =1;j<=i;j++){ //打印空格 第四行1" " 第五行2" "
System.out.print(" ");
}
for(int j =4;j>=i;j--){ //打印* 第四行4"* " 第五行3"* "
System.out.print("* ");
}
System.out.println(); //打印完一行后换行
}
五边形 效果图:
特别注意:
System.out.print(" *");
print: 不换行打印
" *": 空格 *,可使打印出的图形规整
空 心形
for (int i = 1; i <= 3; i++) {
for (int j = 3; j >= i; j--) {
System.out.print(" ");
}
System.out.print("*");
for (int j = 1; j <= i; j++) {
System.out.print(" ");
}
System.out.print("*");
for (int j = 2; j >= i; j--) {
System.out.print(" ");
}
System.out.print("*");
for (int j = 1; j <= i; j++) {
System.out.print(" ");
}
System.out.print("*");
System.out.println();
} // 打印1-3行
for (int i = 0; i <= 7; i++) {
for (int j = 0; j <= i; j++) {
System.out.print(" ");
}
System.out.print("*");
for (int j = 6; j >= i; j--) {
System.out.print(" ");
}
for (int j = 6; j >= i; j--) {
System.out.print(" ");
}
System.out.print("*");
System.out.println();
} //打印4-11行
空 心形 效果图:
总感觉不够完美,好像还缺少些什么,代码还可再优化。
实 心形
// 实 心型
for (int i = 1; i <= 3; i++) {
for (int j = 3; j >= i; j--) {
System.out.print(" ");
}
System.out.print("*");
for (int j = 1; j <= i; j++) {
System.out.print("**");
}
System.out.print("*");
for (int j = 2; j >= i; j--) {
System.out.print(" ");
}
System.out.print("*");
for (int j = 1; j <= i; j++) {
System.out.print("**");
}
System.out.print("*");
System.out.println();
} // 打印1-3行
for (int i = 0; i <= 7; i++) {
for (int j = 0; j <= i; j++) {
System.out.print(" ");
}
System.out.print("*");
for (int j = 6; j >= i; j--) {
System.out.print("*");
}
for (int j = 6; j >= i; j--) {
System.out.print("*");
}
System.out.print("*");
System.out.println();
} //打印4-11行
实 心形 效果图:
实心形直接把空心形里空格换*,代码可优化。