源码清单:
/** */
/**
* SupperRhombus.java
* Java控制台超级菱形打印方法
* @author 邓超(CodingMouse)
* @version 0.1 2008-5-6
* 开发/测试环境:jdk1.6 + eclipse SDK 3.3.2
*/
// 导入Scanner类和PrintStream类
import java.util.Scanner;
import java.io.PrintStream;
public class SupperRhombus ... {
public static void main(String[] args) ...{
Scanner input = new Scanner(System.in);
//循环标识
boolean con = true;
//菱形的行数
int line;
do ...{
con = false;
System.out.print("请输入要打印的菱形层数[不小于3的奇(整)数]:");
//获得控制台用户输入的菱形行数
line = input.nextInt();
if (line % 2 == 0 || line < 3) ...{
System.out.println("只能输入不小于3的奇(整)数!请重试!");
con = true;
}
} while (con);
//控制台输出提示
System.out.println(line + "层菱形图案如下: ");
//因为菱形的行数不能是偶数,要转为奇数
line = (line & 1) == 0 ? line + 1 : line;
PrintStream out = System.out;
for (int i = 0 - line / 2 ; i <= line / 2 ; i++) ...{
for (int j = 0 - line / 2 ; j <= line / 2 ; j++) ...{
//把 == 改成 <= 或 >= ,还可产生其产的图形
//out.print(((Math.abs(i) + Math.abs(j)) == line / 2) ? "* " : " "); //空心菱形
//out.print(((Math.abs(i) + Math.abs(j)) <= line / 2) ? "* " : " "); //实心菱形
out.print(((Math.abs(i) + Math.abs(j)) >= line / 2) ? "* " : " "); //内嵌菱形
}
out.println();
}
}
}
* SupperRhombus.java
* Java控制台超级菱形打印方法
* @author 邓超(CodingMouse)
* @version 0.1 2008-5-6
* 开发/测试环境:jdk1.6 + eclipse SDK 3.3.2
*/
// 导入Scanner类和PrintStream类
import java.util.Scanner;
import java.io.PrintStream;
public class SupperRhombus ... {
public static void main(String[] args) ...{
Scanner input = new Scanner(System.in);
//循环标识
boolean con = true;
//菱形的行数
int line;
do ...{
con = false;
System.out.print("请输入要打印的菱形层数[不小于3的奇(整)数]:");
//获得控制台用户输入的菱形行数
line = input.nextInt();
if (line % 2 == 0 || line < 3) ...{
System.out.println("只能输入不小于3的奇(整)数!请重试!");
con = true;
}
} while (con);
//控制台输出提示
System.out.println(line + "层菱形图案如下: ");
//因为菱形的行数不能是偶数,要转为奇数
line = (line & 1) == 0 ? line + 1 : line;
PrintStream out = System.out;
for (int i = 0 - line / 2 ; i <= line / 2 ; i++) ...{
for (int j = 0 - line / 2 ; j <= line / 2 ; j++) ...{
//把 == 改成 <= 或 >= ,还可产生其产的图形
//out.print(((Math.abs(i) + Math.abs(j)) == line / 2) ? "* " : " "); //空心菱形
//out.print(((Math.abs(i) + Math.abs(j)) <= line / 2) ? "* " : " "); //实心菱形
out.print(((Math.abs(i) + Math.abs(j)) >= line / 2) ? "* " : " "); //内嵌菱形
}
out.println();
}
}
}
执行效果:
请输入要打印的菱形层数[不小于3的奇(整)数]:11
11层菱形图案如下:
* * * * * * * * * * *
* * * * * * * * * *
* * * * * * * *
* * * * * *
* * * *
* *
* * * *
* * * * * *
* * * * * * * *
* * * * * * * * * *
* * * * * * * * * * *