如何按特定顺序重复流程?

时间:2015-03-23 17:14:37

标签: java

我想让程序打印我输入星号的任何整数,以便每个新行都有越来越多的两个星号,总是从一个星号开始。

此代码将打印与我输入的行数相同的任何整数,其中包含一个星号,但如何增加每行中的星号数?

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.println("enter a number:");
    int num = sc.nextInt();
    int j=0;
    int star=1;
    int space= num; 
    System.out.println ("* ");

    if (num>0) {
        for (j=1; j<num; j=j+1) {
            System.out.println ("* " );
        }

        for( j=0; j<star; j++) {
        }
    }
}

4 个答案:

答案 0 :(得分:2)

public static void main(String[] args) {
    String line = "* "; // let's use a variable for the next line we want to print
    Scanner sc = new Scanner(System.in);
    System.out.println("enter a number:");
    int num = sc.nextInt();

    if (num > 0) {
        System.out.println(line);
        for (int j = 1; j < num; j++) { // j++ does the same as j = j + 1
            line = "*" + line; // add a * at the start of the line
            System.out.println(line);
        }
    }
}

答案 1 :(得分:1)

System.outPrintStreamPrintStream有第二种方法,print打印出你放的内容,但不打印出后面的行尾字符。

所以,你可能想要改用它。

现在,说完了,当你完成其他角色时,你仍然需要打印出行尾字符。你可以通过调用no argument version of println(看起来像System.out.println();

来做到这一点

答案 2 :(得分:0)

假设你正在寻找这样的东西:

INPUT: 4
*
**
***
****

然后你可以这样做:

Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
for (int i = 0; i < num; i++) {
    for (int j = 0; j < i; j++) {
        System.out.Print("*");
    }
    System.out.Println();
}

请注意,这一次只打印出一颗星,而且速度相当慢。如果有乐趣可以看,如果在那里扔一个睡眠声明。

答案 3 :(得分:0)

你应该使用两个for循环,一个用于行,另一个用于星。

for (int i = 0; i < 5; i++) {
 for (int j = 0; j < i; j++) {
    System.out.Print("*");
 }
System.out.Println();        
}   


Output:
=======
*  
**  
***  
****  
*****