2014-11-16 48 views
-1

我已經嘗試過所有我能想到的事情。我應該讓用戶輸入一個名稱,其名稱將顯示,如:如何使用兩個循環在金字塔方案中打印名稱?

"b 
ii 
lll" 

這裏是我的代碼:

public static void main(String[] args) { 

    System.out.println("What is your name?"); 
    Scanner console = new Scanner(System.in); 

    String name = console.next().toLowerCase(); 
    printPyramid(name); 
} 

public static void printPyramid(String name) { 


    for (int i = 0; i < name.length(); i++) { 

     System.out.println(name.charAt(i)); 


     { 
      for (int j =1; j<=i ; j++) 
      System.out.print(name.charAt(j)); 
     } 


    } 
} 
+0

這封信應該被打印成多次數作爲它所在的行數。由於'我'在第二行,所以打印了兩次。由於'L'在第三行,它被打印三次。我對這些嵌套循環不好。 – Sarah

+0

如果我的名字是賬單,那麼我會先打印3次,然後再打印4次? –

+0

沒有其他方法可以比自己調試更好。 –

回答

0

更改您的for循環如下:

for (int i = 0; i < name.length(); i++) { 
     for (int j = 0; j<=i; j++) { 
      System.out.print(name.charAt(i)); 
     } 
     System.out.println(); 
    } 
} 
0
public static void printPyramid(String name) { 


    for (int i = 0; i < name.length(); i++) { 

    System.out.println(); 

    { 
     for (int j =0; j<=i ; j++) 
      System.out.print(name.charAt(i)); 
    } 


} 

} 打印i,而不是j

輸入:pravin

輸出:

p rr aaa vvvv iiiii nnnnnn

+0

感謝您的幫助! – Sarah

0

好吧,這這裏應該做的工作:

import java.util.*; 
import java.lang.*; 
import java.io.*; 

/* Name of the class has to be "Main" only if the class is public. */ 
class Ideone 
{ 
    public static void main (String[] args) throws java.lang.Exception 
    { 
     // your code goes here 
     System.out.println("Enter yor name:"); 
     Scanner scan = new Scanner(System.in);//Scan the name 
     String s = scan.nextLine(); 
     for(int i = 0; i < s.length();i++) //For every letter on it 
     { 
      for(int j = 0; j <= i;j++) //Lets print it i+1 times (1,2,3,4... etc) 
      { 
       System.out.print(s.charAt(i)); //Get the letter in that position. 
      } 
      System.out.println(); //Change Line 
     } 
    } 
} 
+0

感謝您的幫助! – Sarah

+0

不是問題:) –