0

我写了一个类来打印一个模式:

1
2   4
3   5   7
4   6   8   10
5   7   9   11  13

我使用了这段代码:

public class pat3
{
    public void method()
    {
        int row;
        int val;

        for(row=1;row<=5;row++)
        {
            for(val=1;val<=row;val++)
            {
                System.out.print(val + 2 + "\t");
            }

            System.out.println();
        }
    }
}

我使用了两个嵌套循环,外部一个控制模式中的行,内部一个控制列。将此与以前的模式问题交叉引用,我的逻辑似乎没问题。

但是,当我运行这个类时,我得到了一个不正确的输出:

3   4   
3   4   5   
3   4   5   6   
3   4   5   6   7   

我已经尝试改变变量并重新措辞for循环,但我的输出总是随机变化而没有相关性,所以我找不到问题的原因。有人可以帮帮我吗?

PS我是编码新手,所以请不要聪明的数学答案,我只想简单地回答代码中的问题。

4

5 回答 5

1

像这样制作内循环:

        for(val=0;val<row;val++)
        {
            System.out.print((row + 2*val) + "\t");
        }

爱迪生

于 2013-11-11T17:08:46.837 回答
1

试试这个作为你的 for 循环:

for(int row=0;row<5;row++)
    {
        for(int val=0;val<=row;val++)
        {
            System.out.print(row+ 1 + val * 2 + "\t");
        }

        System.out.println();
    }
于 2013-11-11T17:13:36.630 回答
0

将代码更改为以下代码:

public void method()
{
    int row;
    int val;

    for(row=1;row<=5;row++)
    {
        for(val=1;val<=row;val++)
        {
            System.out.printf("%2d ", row + (val-1)*2);
        }

        System.out.println();
    }
}

控制台输出如下:

 1 
 2  4 
 3  5  7 
 4  6  8 10 
 5  7  9 11 13 
于 2013-11-11T17:13:28.333 回答
0

对代码的最小修改:

System.out.print(row + (val - 1)*2 + "\t");
于 2013-11-11T17:14:02.323 回答
0
public void method()
{
    int row;
    int val;

    for(row=1;row<=5;row++)
    {
        for(val=0;val<row; val++)
        {
            System.out.print((2*val) + row);
        }

        System.out.println();
    }
}
于 2013-11-11T17:11:53.810 回答