2013-10-24 48 views
-2

我被困在使用for-loop的第二行結尾的符號上,我曾嘗試過幾次,但仍然無法工作。有人能告訴我我做錯了嗎?如何在Java中使用for-loop打印出由符號製作的圖像?

////////////////\\\\\\\\\\\\\\\\ 
    ////////////******** 
    ////////**************** 
    ////************************ 
    ******************************** 

它假設是這個樣子:

////////////////\\\\\\\\\\\\\\\\ 
    ////////////********\\\\\\\\\\\\ 
    ////////****************\\\\\\\\ 
    ////************************\\\\ 
    ******************************** 

這裏是我的代碼:

public static void main (String [] args){ 

    for (int lineOne=1; lineOne<=16; lineOne += 2){ 
     System.out.print("//"); 
    } 
    for (int lineOne=1; lineOne<=32; lineOne += 2){ 
     System.out.print("\\"); 
    } 
    System.out.println(""); 

    for (int a=8; a<=32; a += 8) 
    { 
     for (int b=12; b < (28 - a/2); b +=2) 
     { 
      System.out.print("//"); 
     } 
     for (int c=0; c<a; c++) 
     { 
      System.out.print("*"); 
     } 
     System.out.println("");    
    } 
} 
+0

沒想到這一次通過,沒有你。 –

+1

打印完'*'後,您不打印任何'\'? – Blorgbeard

+1

如果你已經做到了這一點,你可以做到。有耐心和運用你的邏輯。 – Reji

回答

0

看來,你只是沒有打印它。

它應該很好地工作:

for (int lineOne=1; lineOne<=16; lineOne += 2){ 
    System.out.print("//"); 
               } 
    for (int lineOne1=1; lineOne1<=32; lineOne1 += 2){ 
    System.out.print("\\"); 
     } 
    System.out.println(""); 
    for (int a=8; a<=32; a += 8) 
     { 
    for (int b=12; b < 28-a/2; b +=2) 
    { 
     System.out.print("//"); 
    } 
    for (int c=0; c<a; c++) 
    { 
     System.out.print("*"); 

    } 

    // this prints your "\\" 
    for(int k = 0;k<16-a/2;k++) 
    { 
    System.out.print("\\"); 
    } 

    System.out.println(" "); 

} 
+0

你知道如何將它變成4或3個for-loops嗎? – user2812781

0

首先,"\\"實際上只是一個反斜槓,逃過一劫。這就是爲什麼您必須打印32 "\\"以平衡16 "//"。您可能打算打印出16 "\\\\" s。

其次,你沒有代碼在第一行後面打印反斜槓。所以我建議你添加一些代碼來處理這個問題。

第三,您的源代碼是標籤和空格縮進的混合。在查看您自己程序的邏輯流程時,可能會讓您感到困惑。一致的縮進可能真的可以幫助你。

+0

30分鐘後,我確實打印出32「\\」和16「//」s – user2812781

+0

,我終於明白了。感謝你的建議。 – user2812781