本帖最后由 cxdzh 于 2014-10-20 15:34 编辑
- class getPrism
- {
- public static void main(String[] args)
- {
- prism(80);//调用输出菱形的方法.参数决定此菱形的总行数.
- }
- //定义一个输出菱形的方法.hangShu这个变量代表要输出的菱形总行数..修改此变量即可输出不同行数的菱形.
- public static void prism(int hangShu)
- {
- if (hangShu<3||hangShu>80)//实测3行以下无法称为菱形,80行以上在控制台输出效果也畸形了.
- {
- System.out.println("你要输出的菱形行数超出可执行范围!");
- return;
- }
-
- int shangHangShu=hangShu/2+hangShu%2;//判断尖角朝上部分的行数,总行数除以2,如果总行数是单数,上面多输出一行.
- int xiaHangShu=hangShu/2;//尖角朝下部分的行数.
- for (int i=1;i<=shangHangShu;i++ )//从1开始循环,输出上半部分.
- {
- for(int j=0;j<shangHangShu-i;j++)//先打印空格,因为尖角朝上,总行数减去当前行数即为要打印的空格数.
- System.out.print(" ");
- for(int h=1;h<=i*2-1;h++)//第1行1颗星,第2行3颗,第3行5颗,即每行打印数为行数*2-1)颗
- System.out.print("*");
- System.out.println("");//一行打印完换行.
- }
- for (int i=xiaHangShu;i>0;i-- )//输出尖角下半部分.
- {
- for(int j=xiaHangShu;j>i-hangShu%2;j--)//下半部分空格打印次数=行数,但如果总行数是双数,则空格打印次数=行数-1
- System.out.print(" ");
- for(int h=i*2-1;h>0;h--)//每行打印星星次数与上半部分相反.
- System.out.print("*");
- System.out.println("");
- }
- }
- }
复制代码
|