java打印空心菱形
{
public static void main(String[] args)
{
int lay=4;
//上三角
for(int i=1;i<=lay;i++)
{
for(int k=1;k<=lay-i;k++)
System.out.print(" ");
//打印*
for(int j=1;j<=(i-1)*2+1;j++)
//
if(i==1||i==lay)
System.out.print("*");
else
//如果是第一个*
if(j==1||j==(i-1)*2+1)
System.out.print("*");
else
System.out.print(" ");
// System.out.print("*");
// System.out.println("");
//打出一个换行
System.out.println();
}
//下三角
for(int i=lay;i>0;i--)
{
//打印空格,每行有lay-i个空格
for(int k=0;k<lay-i;k++)
System.out.print(" ");
//打印*,每行有(i-1)*2+1个*
for(int j=1;j<=(i-1)*2+1;j++)
//
if(i==1)
System.out.print("*");
else
//如果是第一个*
if( j==1||j==(i-1)*2+1)
System.out.print("*");
else
System.out.print(" ");
// System.out.print("*");
//打出一个换行
System.out.println();
}
}
}
怎么改成空心菱形?求大神详解? 展开
推荐于2017-09-02 · 知道合伙人互联网行家
Java利用for循环输出空心菱形的实例代码
编写程序,在控制台上输出空心菱形,对角距离为6.
代码如下:
public class Diamond {
public static void main(String[] args) {
printHollowRhombus(6);
}
public static void printHollowRhombus(int size) {
if (size % 2 == 0) {
size++;// 计算菱形大小
}
for (int i = 0; i < size / 2 + 1; i++) {
for (int j = size / 2 + 1; j > i + 1; j--) {
System.out.print(" ");// 输出左上角位置的空白
}
for (int j = 0; j < 2 * i + 1; j++) {
if (j == 0 || j == 2 * i) {
System.out.print("* ");// 输出菱形上半部边缘
} else {
System.out.print(" ");// 输出菱形上半部空心
}
}
System.out.println(""); //换行
}
for (int i = size / 2 + 1; i < size; i++) {
for (int j = 0; j < i - size / 2; j++) {
System.out.print(" ");// 输出菱形左下角空白
}
for (int j = 0; j < 2 * size - 1 - 2 * i; j++) {
if (j == 0 || j == 2 * (size - i - 1)) {
System.out.print("* ");// 输出菱形下半部边缘
} else {
System.out.print(" ");// 输出菱形下半部空心
}
}
System.out.println(""); //换行
}
}
}
效果如图:
public class demo11 {
public static void main(String[] args) {
int lay = 4;
// 上三角
for (int i = 1; i <= lay; i++) {
for (int k = 1; k <= lay - i; k++)
System.out.print(" ");
// 打印*
for (int j = 1; j <= (i - 1) * 2 + 1; j++)
//
if(i == lay && j == 1){
System.out.print("*");
}else if (i == 1)
System.out.print("*");
else
// 如果是第一个*
if (j == 1 || j == (i - 1) * 2 + 1)
System.out.print("*");
else
System.out.print(" ");
// System.out.print("*");
// System.out.println("");
// 打出一个换行
System.out.println();
}
// 下三角
for (int i = lay; i > 0; i--) {
// 打印空格,每行有lay-i个空格
for (int k = 0; k < lay - i; k++)
System.out.print(" ");
// 打印*,每行有(i-1)*2+1个*
for (int j = 1; j <= (i - 1) * 2 + 1; j++)
//
if (i == 1)
System.out.print("*");
else
// 如果是第一个*
if (j == 1 || j == (i - 1) * 2 + 1)
System.out.print("*");
else
System.out.print(" ");
// System.out.print("*");
// 打出一个换行
System.out.println();
}
}
}
三个for循环打印打印任意边长菱形
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入你要打印的空心菱形的边长:");
int s= sc.nextInt();
int a=s+1;
int b=s-1;
int c=2*b+a;
int d=s*2-1;
for (int i=1;i<=d;i++){
if (i<=b){
for (int j=1;j<=d;j++ ){
if (j==b+i||j==a-i){
System.out.print(" * ");
}else {
System.out.print(" ");
}
}
}else {
for (int k=1;k<=d;k++){
if (k==i-b||k==c-i){
System.out.print(" * ");
}else {
System.out.print(" ");
}
}
}
System.out.println();
}
}
效果图:请输入你要打印的空心菱形的边长:5
*
* *
* *
* *
* *
* *
* *
* *
*
Process finished with exit code 0