任务描述:
打印如下的图形:菱形
?按照打印的顺序可以得出如下图形,
用@符号代替空格方便查看,然后我们可以通过将图形分解一步步实现菱形。
分解图中菱形分析可以便于理解,如此可以得到一正一反的等腰三角形。
首先分析正等腰三角形,
得出,
使用第一个for循环控制三角形的行号,从图中我们可以得出这三角形有5行,也就是循环5次结束(判断条件),行号依次递增(循环语句)。
第二个for循环按顺序打印@,也就是首先是@符号之后才是*号,从图中第一行空格数为4我们可以得出规律,每一行的空格数为(5-行号),从图中得出,空格依次递减(循环语句),没有空格时退出循环(判断条件)。
第三个for循环就到打印*号,从图中,星号与行号相同,不能大于行号(判断条件),之后依次递增(循环语句)。
最后,再在每一行加执行后换行就可以得到三角形。
代码如下:
实现效果:
然后下三角,是上三角倒序就可以实现。
得出,
使用第一个for循环得到行号,从图中,行号依次递减(循环语句),行号要大于0(判断语句)。
第二个for循环输出空格,空格依次递增(循环语句),空格数为(5-行号),每一行空格数最大为5-行号(判断语句)。
第三个for循环输出*号,从图中看出*号等于行号,最小值为1,所以大于0(判断语句),依次递减(循环语句)。
代码如下:
之后把@符号转换为空格就行。
实现总体效果:
可以看出中间多了一行,这时将下三角的第一个for控制行数的循环减1即可。
而要实现输入,直接使用Java的Scanner库的语句应用即可。
总代码:
实现: