Java :for循环 单外层循环打印倒三角形,正三角形拼接

Java :for循环 单外层循环打印倒三角形,正三角形拼接,第1张

Java :for循环 单外层循环打印倒三角形,正三角形拼接
import java.util.Scanner;

public class TestA {
	public static void main(String[] args) {

        // m 是指上半部分倒三角形去掉下顶点后的行数
        System.out.print("输入m的值:");
        int m = scanner.nextInt();

		for (int i = 0; i <= m * 2; i++) {// 打印的总行数 m * 2
			// 以if-else来控制什么时候循环哪一部分;
			if (i < m) { // 此时 i = 0; 上半部分循环次数为 m; 总循环次数为m * 2;

				// 上半部分将不打印下顶点,其由下半部分打印
				// 如果 i < m,则循环上半部分,打印上半部分倒三角形
				for (int j = 0; j <= i; j++) {// 将倒三角形左边空白以打印正直角三角形的方式使用空格填充
					System.out.print("  ");
				}

				// 将倒三角形分成左右两部分,下顶点由下半部分打印
				for (int j = m; j > i; j--) {// 倒三角形左半部分,即为打印倒直角三角形,每行比上一行少一
					System.out.print("* ");
				}
				for (int j = m; j >= i; j--) {// 倒三角形右半部分,同样为打印倒直角三角形,比倒三角形左半部分多一次打印
					System.out.print("* ");
				}
				System.out.println();// 完成一行打印后换行

			} else {// 此时 i = m; 下半部分循环次数为 m + 1; 总循环次数为m * 2;

				// 如果 i >= m,则循环下半部分,打印下半部分正三角形
				// 将i看作0,将 m * 2看作m
				for (int j = m * 2; j >= i; j--) {// 将三角形左边空白以打印倒直角三角形的方式使用空格填充
					System.out.print("  ");
				}
				for (int j = m * 2 - i; j <= i; j++) {// 打印正三角形,每行比上一行多二
					System.out.print("* ");
				}
				System.out.println();// 完成一行打印后换行
			}

		}

		System.out.println("============================================");
	}

	static Scanner scanner = new Scanner(System.in);
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5611613.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存