使用Java实现输出如下图形。
* * * * * *
* * * * * * * *
* * * * * * * * * *
* * * * * * * * * * * *
* * * * * * * * * * * * * *
* * * * * * * * * * * * * * * *
* * * * * * * * * * * * * *
* * * * * * * * * * * *
* * * * * * * * * *
* * * * * * * *
* * * * * *
难度指数:★★★★
方法:双重循环
解题思路分析:
1.这个图形共有11行,可以分为上半部分(前六行:1-6)和下半部分(后五行:7-11)。
2.使用for循环完成上半部分图形。
1)使用外部for循环,循环六次。外循环循环一次,内循环循环一轮。
2)使用内部for循环来控制每一轮所输出的空格数。
重点:通过条件表达式(j <= 6 - i)控制每循环一轮所输出的空格数,每次循环一轮以递减的顺序来输出空格。
输出空格时不换行。
3)使用内部for循环来控制每一轮所输出的星号*数。
重点:通过条件表达式(k <= (i + 2) * 2)控制每循环一轮所输出的空格数,每次循环一轮以递增的顺序来输出星号*。
输出星号 *时不换行。
4)当内部for循环一轮后,使用输出语句实现换行功能。
3.使用for循环完成下半部分图形。
1)使用外部for循环,循环五次。外循环循环一次,内循环循环一轮。
2)使用内部for循环来控制每一轮所输出的空格数。
重点:通过条件表达式(j <= i)控制每循环一轮所输出的空格数,每次循环一轮以递增的顺序来输出空格。
输出空格时不换行。
3)使用内部for循环来控制每一轮所输出的星号*数。
重点:通过条件表达式(k < 16 - 2*i)控制每循环一轮所输出的空格数,每次循环一轮以递减的顺序来输出星号*。
输出空格时不换行。
4)当内部for循环一轮后,使用输出语句实现换行功能。
public static void main(String[] args) {
//使用for循环完成上半部分图形。
//使用外部for循环,循环六次。外循环循环一次,内循环循环一轮。
for(int i = 1 ; i <= 6 ; i++){
//使用内部for循环来控制每一轮所输出的空格数。
for(int j = 1 ; j <= 6 - i ; j++){
System.out.print(" ");
}
//使用内部for循环来控制每一轮所输出的星号*数。
for(int k = 1 ; k <= (i + 2) * 2 ; k++){
System.out.print("*");
}
System.out.println();
}
//使用for循环完成下半部分图形。
//使用外部for循环,循环五次。外循环循环一次,内循环循环一轮。
for(int i = 1 ; i <= 5 ; i++){
//使用内部for循环来控制每一轮所输出的空格数。
for(int j = 1 ; j <= i ; j++ ){
System.out.print(" ");
}
//使用内部for循环来控制每一轮所输出的星号*数。
for(int k = 1 ; k <= 16 - 2*i ; k++){
System.out.print("*");
}
System.out.println();
}
}