我發現在創建圖形的時候有一個技巧,可以很快的用原來的方法找到空心菱形的方法。下面我給大家介紹一下:
1.首先是創建菱形,我覺得很有趣,之前我有一個用二維數組創建空心菱形的文章,但是那篇文章的方法有侷限,這篇文章的方法沒有侷限,任意的總行數都可以。
import java.util.Scanner;
public class TestR {
public static void main(String[] args) {
System.out.println("請輸入菱形的大小");
Scanner sc=new Scanner(System.in);
int row=sc.nextInt();
if (row>0) {
for (int i = 0; i < row; i++) {
for (int j = 0; j < row-i; j++) {
System.out.print(" ");
}for (int j = 0; j < 2*i-1; j++) {
System.out.print("*");
}
System.out.println();
}
for (int i = 0; i < row; i++) {
for (int j = 0; j < i; j++) {
System.out.print(" ");
}for (int j = 0; j < 2*(row-i)-1; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
}
效果圖 見圖1
圖1
2.思考。我要怎麼樣才能得到空心的菱形呢?首先空心的菱形只有邊上有*,其他都是空格;
那麼技巧來了,(對於我來說就是獨創絕技,哈哈笑場)。 我修改一下源代碼如下:
不輸出*號了,輸出相對應的數字:
import java.util.Scanner;
public class TestR {
public static void main(String[] args) {
System.out.println("請輸入菱形的大小");
Scanner sc=new Scanner(System.in);
int row=sc.nextInt();
if (row>0) {
for (int i = 0; i < row; i++) {
for (int j = 0; j < row-i; j++) {
System.out.print(" ");
}for (int j = 0; j < 2*i-1; j++) {
System.out.print(j);
}
System.out.println();
}
for (int i = 0; i < row; i++) {
for (int j = 0; j < i; j++) {
System.out.print(" ");
}for (int j = 0; j < 2*(row-i)-1; j++) {
System.out.print(j);
}
System.out.println();
}
}
}
}
效果圖見圖2
圖2通過圖二,還不足以發現規律的話,在試一下。只輸出邊上的數字看看
所以,簡單的來了,我們直接把這個邊上的輸出的數字直接換成*號輸出不就可以了
其實道理很簡單,在輸出的時候直接if-else判斷一下,輸出兩邊的*號既可以。
import java.util.Scanner;
public class TestR {
public static void main(String[] args) {
System.out.println("請輸入菱形的大小");
Scanner sc=new Scanner(System.in);
int row=sc.nextInt();
if (row>0) {
for (int i = 0; i < row; i++) {
for (int j = 0; j < row-i; j++) {
System.out.print(" ");
}for (int j = 0; j < 2*i-1; j++) {
if (j==0||j==2*i-2) {
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println();
}
for (int i = 0; i < row; i++) {
for (int j = 0; j < i; j++) {
System.out.print(" ");
}for (int j = 0; j < 2*(row-i)-1; j++) {
if (j==0||j==2*(row-i)-2) {
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println();
}
}
}
}
寫在最後,常常我們發現規律的方法不一樣,但是最後都會看清這個周遭。
事情常常事與願違的時候,想想背後發生的原因,也許並不怪你,或許還不到你發現自真正錯誤的時候,需要時間的考驗和非常多的失敗。程序員常開的玩笑是,我一天90%的時間都是Debug,真正寫好的代碼只要幾分鐘。
作爲一般人,生活中總是90%的時間都在處理瑣事,真正學到的東西以及掌握的知識就是那幾分鐘,也許你要掌握一個知識點,需要看幾本書一樣,多維度的理解問題,才能真正學到這個東西。