Java:打印输出空心菱形

题目要求输出类似空心菱形:

 我们可以分成两部分来写,相当于就是正三角和倒三角,假设上面为9层,下面就为8层。

先写上部分的正三角:

public class stat01{public static void main(String[] args) {//打印空心菱形int i = 1; //i表示当前层数int j = 1; int k = 1;int line = 9; //总层数for (i = 1; i <= line; i++) {//输出对应空格for (k = 1; k <= line - i; k++) {System.out.print(" ");  }//控制每层打印*的个数for (j = 1; j <= 2 * i - 1; j++) {if (j == 1 || j == 2 * i - 1) {  //第一个和最后一个为*System.out.print("*");}else{System.out.print(" ");   //其他位置为空格}}System.out.println(); //每打印完一层*,就换行}}
}

实现效果如图: 

接着写下部分的倒三角:

public class stat02{public static void main(String[] args) {//打印空心菱形int i = 1; //i表示当前层数int j = 1; int k = 1;int line = 9; //总层数//倒三角for (i = 1; i <= line - 1; i++) {for (k = 1; k <= i; k++) {System.out.print(" ");}for (j = 1; j <= 2 * (line - 1 - i) + 1; j++) {if (j ==1 || j == 2 * (line - 1 - i) + 1) { //第一个和最后一个为*System.out.print("*");}else{System.out.print(" "); //其他位置为空格}}System.out.println(); //每打印完一层*,就换行}}
}

实现效果如图: 

 接着把两个代码合在一起,完整代码如下:

public class doublestat{public static void main(String[] args) {//打印空心菱形int i = 1; //i表示当前层数int j = 1; int k = 1;int line = 9; //总层数for (i = 1; i <= line; i++) {//输出对应空格for (k = 1; k <= line - i; k++) {System.out.print(" ");  }//控制每层打印*的个数for (j = 1; j <= 2 * i - 1; j++) {if (j == 1 || j == 2 * i - 1) {  //第一个和最后一个为*System.out.print("*");}else{System.out.print(" ");   //其他位置为空格}}System.out.println(); //每打印完一层*,就换行}//倒三角for (i = 1; i <= line - 1; i++) {for (k = 1; k <= i; k++) {System.out.print(" ");}for (j = 1; j <= 2 * (line - 1 - i) + 1; j++) {if (j ==1 || j == 2 * (line - 1 - i) + 1) { //第一个和最后一个为*System.out.print("*");}else{System.out.print(" "); //其他位置为空格}}System.out.println(); //每打印完一层*,就换行}}
}

最终效果如图所示:

 温馨提示:代码中line代表总层数,是指正三角的层数,真正空心菱形的层数为:2*line-1,需要改层数,直接改line的值就可以了,很方便的。

Java:打印输出空心菱形

题目要求输出类似空心菱形:

 我们可以分成两部分来写,相当于就是正三角和倒三角,假设上面为9层,下面就为8层。

先写上部分的正三角:

public class stat01{public static void main(String[] args) {//打印空心菱形int i = 1; //i表示当前层数int j = 1; int k = 1;int line = 9; //总层数for (i = 1; i <= line; i++) {//输出对应空格for (k = 1; k <= line - i; k++) {System.out.print(" ");  }//控制每层打印*的个数for (j = 1; j <= 2 * i - 1; j++) {if (j == 1 || j == 2 * i - 1) {  //第一个和最后一个为*System.out.print("*");}else{System.out.print(" ");   //其他位置为空格}}System.out.println(); //每打印完一层*,就换行}}
}

实现效果如图: 

接着写下部分的倒三角:

public class stat02{public static void main(String[] args) {//打印空心菱形int i = 1; //i表示当前层数int j = 1; int k = 1;int line = 9; //总层数//倒三角for (i = 1; i <= line - 1; i++) {for (k = 1; k <= i; k++) {System.out.print(" ");}for (j = 1; j <= 2 * (line - 1 - i) + 1; j++) {if (j ==1 || j == 2 * (line - 1 - i) + 1) { //第一个和最后一个为*System.out.print("*");}else{System.out.print(" "); //其他位置为空格}}System.out.println(); //每打印完一层*,就换行}}
}

实现效果如图: 

 接着把两个代码合在一起,完整代码如下:

public class doublestat{public static void main(String[] args) {//打印空心菱形int i = 1; //i表示当前层数int j = 1; int k = 1;int line = 9; //总层数for (i = 1; i <= line; i++) {//输出对应空格for (k = 1; k <= line - i; k++) {System.out.print(" ");  }//控制每层打印*的个数for (j = 1; j <= 2 * i - 1; j++) {if (j == 1 || j == 2 * i - 1) {  //第一个和最后一个为*System.out.print("*");}else{System.out.print(" ");   //其他位置为空格}}System.out.println(); //每打印完一层*,就换行}//倒三角for (i = 1; i <= line - 1; i++) {for (k = 1; k <= i; k++) {System.out.print(" ");}for (j = 1; j <= 2 * (line - 1 - i) + 1; j++) {if (j ==1 || j == 2 * (line - 1 - i) + 1) { //第一个和最后一个为*System.out.print("*");}else{System.out.print(" "); //其他位置为空格}}System.out.println(); //每打印完一层*,就换行}}
}

最终效果如图所示:

 温馨提示:代码中line代表总层数,是指正三角的层数,真正空心菱形的层数为:2*line-1,需要改层数,直接改line的值就可以了,很方便的。