2017-10-07 340 views
0

我很新的Java編程語言。Java:嵌套循環

我要求做這樣的事情與嵌套循環方法:

picture1

「Masukan Angka」是印度尼西亞語的「輸入號碼」。所以如果我們輸入9,它會打印出9行*,每行減少*。

我有嵌套循環試了一下,這是我做了什麼:picture2

的代碼是:

public static void main(String args[]) { 
     Scanner in = new Scanner(System.in); 
     System.out.print("Input your number: "); 
     int x = in.nextInt(); 
     for (int y = x; y > 0; y--) { 
      for (int z = 0; z < y; z++) 
       System.out.print("*"); 
      System.out.println(); 
     } 
    } 

我怎樣才能使它不會在2-線與*填補7,而是像第一張圖片中的例子那樣填充空白空間?

在此先感謝。 print語句,if(z == 0 || z == y-1)前一秒的後

+2

您可以添加if(z == 0 || z == y-1)條件,然後打印 – Ringuerel

+0

歡迎使用Stack Overflow。將問題分成幾部分。頂部畫出的不同於中間,也許是底部 – AJNeufeld

回答

1

@Ringuerel解決方案擴展了一下:

for (int y = x; y > 0; y--) { 
    for (int z = 0; z < y; z++) { 
     // If it's first or last or first row print "*" 
     if(z == 0 || z == y-1 || y == x) { 
      System.out.print("*"); 
     } 
     else { 
      // Otherwise print " " 
      System.out.print(" "); 
     } 
    } 
    System.out.println(); 
}  
0

添加這個,對不起,我用我的電話

0
public static void main(String[] args) { 
    int amount = 10; 
    String c = "*"; 
    String message = ""; 
    for (int i = 0; i < amount; i++) { 
     message += "*"; 
     for (int j = 1; j < amount - i; j++) { 
      message += c; 
     } 
     message += "*"; 
     c = " "; 
     System.out.println(message); 
     message = ""; 
    } 
    System.out.println("*"); 

} 

你可以試試這個如果你想。沒有測試過,但我相當肯定它會工作。

+0

此外,您還可以獲得輸入。金額將是輸入-1。 –