具有嵌套循环模式的逻辑错误

时间:2013-11-11 17:03:28

标签: java

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

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循环,但我的输出总是随机变化而没有相关性,所以我找不到问题的原因。有人可以帮帮我吗?

P.S。我是编码的新手,所以请不要使用智能的数学答案,我只是想对代码中的问题做一个直截了当的回答。

5 个答案:

答案 0 :(得分:1)

像这样制作内循环:

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

Ideone

答案 1 :(得分: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();
    }

答案 2 :(得分: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();
    }
}

答案 3 :(得分: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 

答案 4 :(得分:0)

对代码的最小修改:

System.out.print(row + (val - 1)*2 + "\t");