用for迴圈列印一個菱形的第二種方法
阿新 • • 發佈:2018-12-29
步驟一:輸出正方形
public class Test000 {
public static void main(String [] args) {
int size=15;//邊長
for(int i=1;i<=size;i++) {//控制行數
for(int j=1;j<=size;j++) {//控制每行長度
System.out.print("*");
}
System.out.println();//每輸出一行換行
}
}
}
效果圖:
步驟二:輸出一豎
public class Test000 { public static void main(String [] args) { int size=15;//邊長 int startNum=size/2+1;//起始位置,由中間位置向兩邊擴充套件 int endNum=size/2+1;//終止位置,由中間位置向兩邊擴充套件 for(int i=1;i<=size;i++) {//控制高 for(int j=1;j<=size;j++) {//控制長 if(j>=startNum&&j<=endNum) {//介於起始位置和終止位置之間輸出* System.out.print("*"); }else { System.out.print(" ");//否則輸出空格 } } System.out.println();//每輸出一行換行 } } }
效果圖:
步驟三:輸出實心菱形
public class Test000 { public static void main(String [] args) { int size=15;//邊長 int startNum=size/2+1;//起始位置,由中間位置向兩邊擴充套件 int endNum=size/2+1;//終止位置,由中間位置向兩邊擴充套件 boolean flag=true;/*為了能夠從輸出一豎變成輸出實心菱形,引入flag控制當下半菱形 * 時tartNum和endNum的變化規律 */ for(int i=1;i<=size;i++) {//控制高 for(int j=1;j<=size;j++) {//控制長 if(j>=startNum&&j<=endNum) {//介於起始位置和終止位置之間輸出* System.out.print("*"); }else { System.out.print(" ");//否則輸出空格 } } System.out.println();//每輸出一行換行 if(endNum-startNum+1==size) { //當endNum-startNum+1==size時,正好列印完*數最多的一行 flag=false; } if(flag) {//上半菱形 startNum--; endNum++; }else {//下半菱形 startNum++; endNum--; } } } }
效果圖:
步驟四:列印空心菱形
public class Test000 { public static void main(String [] args) { int size=15;//邊長 int startNum=size/2+1;//起始位置,由中間位置向兩邊擴充套件 int endNum=size/2+1;//終止位置,由中間位置向兩邊擴充套件 boolean flag=true;/*為了能夠從輸出一豎變成輸出實心菱形,引入flag控制當下半菱形 * 時tartNum和endNum的變化規律 */ for(int i=1;i<=size;i++) {//控制高 for(int j=1;j<=size;j++) {//控制長 if(j==startNum||j==endNum) {/* 將原本介於起始位置和終止位置之間輸出* 改為在起始位置和終止位置之間輸出* */ System.out.print("*"); }else { System.out.print(" ");//否則輸出空格 } } System.out.println();//每輸出一行換行 if(endNum-startNum+1==size) { //當endNum-startNum+1==size時,正好列印完*數最多的一行 flag=false; } if(flag) {//上半菱形 startNum--; endNum++; }else {//下半菱形 startNum++; endNum--; } } } }
效果圖: