- 作业:打印5行三角形
- 这是我写的:
public class TestDemo1 {
public static void main(String[] args) {
int line = 5; //定义总行数line
for (int i = 1; i <= line; i++){ //i是循环输出每一行
for(int j = 1; j <= line-i; j++) { //j是每行循环输出几次空格。函数关系是,j=line-i,即每行输出line-i个空格。
System.out.print(" ");
}
for(int k = 1; k <= 2*i-1; k++) { //k是每行循环输出几次“*”。函数关系式,k=2*i-1,即每行输出2*i-1个“*”。
System.out.print("*");
}
System.out.println();
}
}
}
====效果如下====
*
***
*****
*******
*********
- 这是秦疆老师写的:
public class TestDemo2 {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) { //i是行数
for (int j = 5; j >= i; j--) {
//输出空格位,逐行递减,4,3,2,1,0
System.out.print(" ");
}
for (int j = 1; j<=i ; j++){
//输出中线及左侧的“*”,逐行递增,1,2,3,4,5
System.out.print("*");
}
for (int j = 1; j<i; j++) {
//输出右侧的“*”,逐行递增,0,1,2,3,4
System.out.print("*");
}
System.out.println();
}
}
}
====效果如下====
*
***
*****
*******
*********
- 这次到没什么思维上的盲区。只是语句功能还不熟练,反复修改了一会儿。
- 不同在于,我多定义了一个
总行数
,可以直接寻找每行空格
和*
同总行数
和第几行
的函数关系。这样无论是输出多少行的三角形,只需要修改总行数,就能完成。如果不考虑这个的话,我的代码可以再缩减1行。 - 而秦疆老师没有定义
总行数
,所以后面表达空格
和*
数量时也不涉及函数关系,单纯的数数。如果要求的三角形行数变了,他需要改两处地方。 - 而且秦疆老师在讲述自己思路时,说是把
*
数量做了一次对折,分成了两半,所以才会有两个输出*
的语句。其实这就是把我的一个for循环拆成了两个。 - 也不知道哪种写法可读性更好,或者效率更高。
- IDEA中的debug功能,略。