- 问题
- 代码
- 输出
- 总结
使用*打印一些常规的图案。比如,正方形、正三角、倒三角、等腰三角形、菱形。
代码import java.util.Scanner;
public class Main52 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
// 打印正方形,长宽为n
System.out.println("打印正方形");
printSquare(n);
System.out.println("===========================");
// 打印正三角,长宽为n
System.out.println("打印正三角");
printPositiveTriangle(n);
System.out.println("===========================");
// 打印倒三角
System.out.println("打印倒三角");
printInvertedTriangle(n);
System.out.println("===========================");
// 打印等腰三角
System.out.println("打印等腰三角");
printIsoscelesTriangle(n);
System.out.println("===========================");
// 打印菱形
System.out.println("打印菱形");
printDiamond(n);
System.out.println("===========================");
}
// 打印菱形
private static void printDiamond(int n) {
// n行
for (int i = 0; i < n; i++) {
// 空格
for (int j = 0; j < n - (i + 1); j++) {
System.out.print(" ");
}
// *
for (int k = 0; k < (i + 1) * 2 - 1; k++) {
System.out.print("*" + "");
}
System.out.println();
}
// n-1行,这个行循环下标必须得倒着来,不然里面*的循环没法写
for (int i = n - 1; i > 0; i--) {
// 空格
for (int j = 0; j < n - i; j++) {
System.out.print(" ");
}
// *
for (int k = 0; k < 2 * i - 1; k++) {
System.out.print("*" + "");
}
System.out.println();
}
}
// 打印等腰三角
private static void printIsoscelesTriangle(int n) {
// 4行
for (int i = 0; i < n; i++) {
// 空格
for (int j = 0; j < n - (i + 1); j++) {
System.out.print(" ");
}
// *
for (int k = 0; k < (i + 1) * 2 - 1; k++) {
System.out.print("*" + "");
}
System.out.println();
}
}
// 打印倒三角
private static void printInvertedTriangle(int n) {
// n行
for (int i = 0; i < n; i++) {
for (int j = 0; j < n + 1 - (i + 1); j++) {
System.out.print("*" + " ");
}
System.out.println();
}
}
// 打印正三角
private static void printPositiveTriangle(int n) {
// n行
for (int i = 0; i < n; i++) {
// 每行的个数与行数有一个对应关系;每行*个数=该行行数+1
for (int j = 0; j < i + 1; j++) {
System.out.print("*" + " ");
}
System.out.println();
}
}
// 打印正方形
private static void printSquare(int n) {
// n行
for (int i = 0; i < n; i++) {
// n列
for (int j = 0; j < n; j++) {
System.out.print("*" + " ");
}
System.out.println();
}
}
}
输出
6
打印正方形
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
===========================
打印正三角
*
* *
* * *
* * * *
* * * * *
* * * * * *
===========================
打印倒三角
* * * * * *
* * * * *
* * * *
* * *
* *
*
===========================
打印等腰三角
*
***
*****
*******
*********
***********
===========================
打印菱形
*
***
*****
*******
*********
***********
*********
*******
*****
***
*
===========================
Process finished with exit code 0
总结
以上就是今天复习Java内容做的小笔记。菱形的思路基于等腰三角形,值得一提的是菱形下面部分n-1行的打印,其循环下标必须得倒着来,否则里面循环打印*没法写。如果有帮助,不妨点个赞。



