如何使用嵌套for循环?

时间:2013-07-12 20:46:21

标签: java

这是我的代码

public static void main (String[] args)
{
    Scanner keyboard = new Scanner (System.in);

    int tri,  a;
    int b;

    System.out.println("Enter the size you want your triangle to be:");

    tri = keyboard.nextInt();      

    for (a = 1; a <= tri; a++)
    {
        for (b = 1; b <= a; b++)
        {
            System.out.print("*");
        }

    }
}

当我跑步并进入前。 3我想要代码说

  

enter image description here

我知道我可能会错过一些循环,因为我只处于代码的开始阶段。我正在跑步,看看是否一切都按照我想要的方式进行,但事实并非如此。当我输入3时,我将所有内容都放在一行:

******

将非常感谢帮助解释 它应该适用于任何不仅仅是3的数字

4 个答案:

答案 0 :(得分:2)

您需要对代码进行两处更改。首先,您需要在外循环的每次迭代中结束该行。其次,你需要做三角形的底部。以下是执行此操作的代码:

public static void main (String[] args)
{
    Scanner keyboard = new Scanner (System.in);

    int tri,  a;
    int b;

    System.out.println("Enter the size you want your triangle to be:");

    tri = keyboard.nextInt();      

    for (a = 1; a <= tri; a++)
    {
        for (b = 1; b <= a; b++)
        {
            System.out.print("*");
        }
        // this next call ends the current line
        System.out.println();
    }
    // now for the bottom of the triangle:
    for (a = tri - 1; a >= 1; a--) {
        for (b = 1; b <= a; b++)
        {
            System.out.print("*");
        }
        System.out.println();
    }
}

答案 1 :(得分:1)

或者只是一个循环:

int x = 3; // input tri
var y = x*2;

for (int i = 0; i < y; ++i) {
    for (int j = 0; j < (i < x ? i : y-i); ++j) {
        System.out.print("*");
    }
    System.out.println();
}

答案 2 :(得分:0)

每次访问外部循环时都需要这样做:

system.out.println();

这允许*在不同的行上,这个代码只做三角形的上半部分。为了做下半部分,你必须从三。倒计时。

答案 3 :(得分:0)

System.out.print打印当前输出缓冲区中的所有内容,即控制台。您必须使用System.out.println(请注意ln后缀)来打印内容和断行。