在我们初学者的阶段中,相信很多朋友都有遇到过这样的联系,就是我们在学习循环结构的时候,都会有一些练习打印三角形、九九乘法表或者打印棱形之类的习题,那这个对于初学者来说,可能比较难的是没能完全理解循环结构执行的条件以及结束的条件,其次就是嵌套起来怎么使用和打印这些形状时应该如何去控制输出的规律等,我觉得只要把这些都弄明白了,打印这些自然就不难了。
编程语言:Java
编译环境:windows 10 、IntelliJ idea
适合人群:Java初学者、编程爱好者
本次主要用到for循环结构,那么for循环的结构基本语法如下:
// int i = 0; 为初始化语句,只会执行一次
// i < 10;为条件判断语句,如果结果为false,则结束循环,否则执行循环体
// i++ 为条件控制语句
for (int i = 0; i <10; i++) {
// 循环体
}
举个栗子:
比方说我们需要用for循环打印一个如下的三角形,那么思路是什么呢?我们应该如何去打印呢?
*
**
***
****
*****
思路分析:
- 我们可以看到这个三角形总共是有5行5列的,而且每行的*号数量刚好等于各自的行号
- 这个三角形是靠右对齐,*号数量逐行增加,空格数量逐行递减
- 我们还发现,第一行打印出*的是第五列,第二行的是第四、第五列...
经过以上的分析,我们假设用 i 来表示行,j 表示列,如果 i=0,j=0时,不管是 j++还是j--很明显得不到我们要的效果;如果 i=0,j=5时,j--的时候我们限制当j<=i的时候输出*否则就输出空格,这样子一来似乎就得到我们想要的效果了,那么我们代码验证一下。
代码示例:
// 外层主要用来控制行数
for (int i = 1; i <= 5; i++) {
// 内层用来控制列数
for (int j = 5; j > 0; j--) {
// 这里主要是用来控制左边缩进的空格以及什么时候该打印*
if (j <= i) {
System.out.print("*");
} else {
System.out.print(" ");
}
}
System.out.println();
}
结语:
如果我们把 j<=i 换成 j>=i 或者其他条件呢?结果又会是什么样呢?大家可以去尝试一下,大家主要还是得理解循环结构的执行顺序和流程以及执行的条件是什么,结束条件是什么。然后对于打印这种图形更重要的是找到其规律。