2012-11-14 77 views
2

进出口新的Java和我不知道,如果它有可能把星号的数量旁边, 例如: 1 * 2 ** 3 ***号与星号

我这里有我的代码

package ReviewExercise; 
import java.util.Scanner; 
public class review1 { 

    /** 
    * @param args 
    */ 
    public static void main(String[] args) { 
     // TODO Auto-generated method stub 

     Scanner sc = new Scanner(System.in); 
     System.out.print("Enter number from 1 - 10: "); 
     int num = sc.nextInt(); 

     //for(int r = 1; ; r++){ 
      for(int c = 1; c <= num; c++) { 
       for (int r = c; r <= c; r++) { 
       System.out.println(c); 
      } 
     } 
    } 

} 

回答

1

简言之

for (int i = 0 i < noOfAsterisks; i++) { 
    System.out.print("*"); 
} 

注意print()的使用,而不是println()print()在其输出后不会打印换行符,因此可用于打印出如上所述的序列。

您可能更愿意使用StringBuilder在内存中创建一个字符串,然后在一个println()语句中将其打印出来。这可能更有效率和/或更好。

+0

输出应该是这样的: '1 *' '2 **' '3 ***' – yakults

1

修改您for循环如下:

for(int c = 1; c <= num; c++) 
{ 
    System.out.print(c); 
    for (int r = 1; r <= c; r++) 
    { 
     System.out.print("*"); 
    } 
    System.out.print(" "); 
} 
0
for(int c = 1; c <= num; c++) 
{ 
    String line = String.valueOf(c); 
    for (int r = 0; r < c; r++) 
    { 
     line += "*"; 
    } 
    System.out.println(""); 
    System.out.println(line); 
} 
+0

是,但它只打印星号 – yakults

+0

更改为此System.out.print(r +“*”); – ddarellis

+0

查看更改 – ddarellis