记录下学习java中for and if的循环历程,写出可改变六芒星三角边长的java小程序

从朋友的一步步布置问题,写出来的.....        故事如下,偏长,可不看直接到底拿代码哦

朋友:你可以写出圣诞树来吗?

我:可以,啪啪啪,敲出来了。

朋友:你可以写出菱形来吗?

我:可以,给我点时间,我想一下。

//网上各种找教程........

接着啪啪啪,敲出来了,交任务

朋友:你可以把两个三角形重合下变成六边形吗?

我:可以,我要想下怎么重合   

// 网上找不到合适的教程,因为只用for循环。。。。。

// 费事一天半的时间,想到了我得一行一行的控制打印出来,用if可以做到

//经过无数次调试,终于打印出来了六芒星(固定的),交任务

朋友:你可以把这个六芒星挖空吗?

我:这个有点难度,我想下。

//费时半天,dubug无数次想法,敲出来了。

朋友:这不是我想要的挖空,我要的是每个小三角都是连起来的。

我:好吧,我改下,

//费时两天,改出来了,用if控制每个小三角的连接线。

朋友:不错的嘛,你可以自定义吗?我想要六边形小三角的边长是多长的就是多长的?

我:可以,我改下

//费时半天,改成可自定义大小的,发现连接线有问题,接着,脑子死活转不过来,救助朋友,写好注释,写明问题点

//朋友一会会就跟我说,改好了。。。。。。

我:我打算把这个发网上,你帮忙发csdn吧

朋友:你自己发吧,记录下你的成长。

我:好吧,我去发,我想我百度没找到这个教程,但是可以锻炼for循环,而且接触for循环的都是新手,不容易,我就公开了。

朋友:可以,你去发吧

如果故事你看完了,相信你会有问题,为什么你的朋友这么刁难你,你心里没有怒火吗?

我的回答是:要谢谢我的朋友,因为他让我了解了for和if,这点是毋庸置疑的。我学java是爱好,我的本职是平面设计,经历过改动一套设计费时1个月,客户拿我的第三稿,所以,这都是小问题。同时也间接的说明了哦,我花费的时间比较长,第一呢,我脑子比较笨,第二呢,平时得上班啊,上班没多少时间写这些呀。

如果回答没解决到你疑惑的话,请谅解我考虑的不周全,同时也谢谢你看到这里,

重要的事情说三遍:谢谢观看!谢谢观看!谢谢观看!

public class Christmas_Tree {
	public static void main(String[] arge) {
		int n = 4;// 确定六芒星的边长
		int day = n * 4 + 1; // 确定六角星的行数

		for (int i = 1; i <= day; i++) { // 整体大循环

			if (i <= n) {// 确定上三角控制的行数
				for (int j = 1; j <= day - i - 1; j++) {
                                // 定义上三角在什么位置开始打印星的空格数量
					System.out.print(" ");

				}
				for (int x = 1; x <= i; x++) {// 定义镂空打印星的范围及数量
					if (x == 1 || x == i) {// 定义变量x在if环境下打印的位置
						System.out.print("* ");

					} else {// 在上述情况外的条件下 打印空格
						System.out.print("  ");

					}
				}

				System.out.println();// 换行

			} else if (i <= 2 * n + 1) {// 定义上主体的行数控制范围

				for (int y = 1; y < i; y++) {
                               // 定义上主体在什么位置开始打印星的空格数量
					System.out.print(" ");
				}

				for (int x = 1; x <= day - i; x++) {// 定义镂空星的范围及数量

					if (x == 1 || x == day - i) {// 定义镂空星的打印位置
						System.out.print("* ");

					} else if (i <= n + 1 && x <= day) {
                                          // 定义上主体第一行打印内容,及打印一整行
						System.out.print("* ");

					} else if (x == n * 2 - i + 2) {// 控制左连接线的位置
						System.out.print("* ");

					} else if (x == n * 2) {// 控制右连接线的位置
						System.out.print("* ");

					} else {// 在上述情况外的条件下 打印空格
						System.out.print("  ");

					}
				}
				System.out.println();// 换行
			} else if (i <= 3 * n + 1) {// 定义下主体的行数控制范围
				for (int y = 1; y <= day - i; y++) {
                                // 定义下主体在什么位置开始打印星的空格数量
					System.out.print(" ");
				}

				for (int x = 1; x <= i - 1; x++) {// 定义镂空星的范围及数量
					if (x == 1 || x == i - 1) {// 定义镂空星的打印位置
						System.out.print("* ");

					} else if (i == n * 3 + 1 && x <= n * 3) {
                                            // 定义下主体最后一行的打印内容,及打印一整行
						System.out.print("* ");

					} else if (x == i - n * 2|| x == n * 2) {
                                // 控制下主体的连接线,和上主体类似,可以改成上主体写的方式也可以用这种方式
						System.out.print("* ");

					} else {// 在上述情况外的条件下 打印空格{
						System.out.print("  ");

					}

				}
				System.out.println();// 换行

			} else if (i <= day) {// 定义下三角的行数
				for (int y = 1; y <= i - 2; y++) {// 定义打印位置空格
					System.out.print(" ");
				}
				for (int x = 1; x <= day + 1 - i; x++) {// 定义打印星
					if (x == 1 || x == day + 1 - i) {// 控制镂空打印
						System.out.print("* ");// 打印星的数量

					} else {// 范围外的条件下打印空格
						System.out.print("  ");

					}
				}
				System.out.println();// 换行 无太大意义
			}
		}

		System.out.println();// 换行为写五角星拉开距离,无意义
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值