java循环三角形_java用循环画三角形思路

本文介绍了使用Java循环来绘制不同类型的三角形的方法,包括直角三角形。通过控制内外循环,实现星号(*)的布局变化,从而形成不同形状的直角三角形。文章还提出挑战,尝试用更少的循环实现同样效果,锻炼编程思维。
摘要由CSDN通过智能技术生成

对于一个问题,要学者换个角度,看问题的本质;

我们要在一张白纸上面画一个东西,本质是一个多少行多少列的任务;

那么一个外出for可以控制行,内部循环可以控制列的任务数;

注:每次打印一个字符就是一次任务,包括空格;

有了思路:乘法口诀,等边三角,画‘回’字都不在话下;

扩展:试着在一个循环里面用if来取代循环,让3个循环变成两个;然后试着让两个循环变成一个;

package basis.week01;

public class Test03 {

// 画直角三角形

public static void main(String[] args) {

// 1、原始思路,画一个长方形(正方形也是一种特殊的长方形)

外循环控制行

//for(int i=1;i<=9;i++) {

//for(int j=1;j<=9;j++) {

内循环控制每列做多少次事情

每次做9次固定

//System.out.print("*");

//}

外循环负责一行所有事情做完之后剩下的事情,比如换行

//System.out.println();

//}

2、思路进一步

外循环控制行

//for (int i = 1; i <= 9; i++) {

内循环要做两种事情了,一种画*,一种话+,但是一行一共完成9次就好了

//for (int j = 1; j <= 8; j++) {

内循环控制每列做多少次事情

每次做8次固定

//System.out.print("*");

//}

//for (int x = 1; x <= 1; x++) {

内循环控制每列做多少次事情

上面完成了8次*,还剩一次任务没有完成

//System.out.print("+");

//}

外循环负责一行所有事情做完之后剩下的事情,比如换行

//System.out.println();

//}

3、思路进二步,里面一共就干了9次活,那么只要总和满足9次就好了,我们就可以联动了

*号越来越多,直角在左下方

//for (int i = 1; i <= 9; i++) {

//for (int j = 1; j <= i; j++) {

//System.out.print("*");

//}

//for (int x = 1; x <= 9-i; x++) {

//System.out.print(" ");

//}

//System.out.println();

//}

*号越来越少,直角在左上方

//for (int i = 1; i <= 9; i++) {

//for (int j = 1; j <= 10-i/*此时i起始就是1了,9-1就是8了,少了一次,稍微处理一下就可以了*/; j++) {

//System.out.print("*");

//}

//for (int x = 1; x < i; x++) {

//System.out.print(" ");

//}

//System.out.println();

//}

*号越来越少,直角在右上方

那么这种就是空格越来越多,而且空格的任务要先做

//for (int i = 1; i <= 9; i++) {

//for (int x = 1; x <= i-1; x++) {

//System.out.print(" ");

//}

//for (int j = 1; j <= 10-i/*此时i起始就是1了,9-1就是8了,少了一次,稍微处理一下就可以了*/; j++) {

//System.out.print("*");

//}

//System.out.println();

//}

//*号越来越多,直角在右下方

//那么这种就是空格越来越少,而且空格的任务要先做

for (int i = 1; i <= 9; i++) {

for (int x = 1; x <= 9-i; x++) {

System.out.print(" ");

}

for (int j = 1; j <= i/*此时i起始就是1了,9-1就是8了,少了一次,稍微处理一下就可以了*/; j++) {

System.out.print("*");

}

System.out.println();

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值