Java 根据传入的值获取连续值

Java 根据传入的值获取连续值,java,algorithm,Java,Algorithm,我正在寻找一种方法来传递一个值并从中获得3个值。这意味着如果我传入值0,打印输出将为0 1 2。因此,这是传入的实际值加上接下来的2个连续数字 但这不仅仅是关于连续的数字。例如,如果我通过了1,我就不会期望1 2 3。相反,它应该如下所示 0传入,因此打印0 1 2 现在传入10 1 2已完成上述调用。 因此,传入1将打印3 4 5 现在传入20 1 2 3 4 5已完成上述调用。 因此,通过2将输出678,依此类推 下面的代码按预期工作,但以这种方式编写有点愚蠢,加上传入的值是由外部

我正在寻找一种方法来传递一个值并从中获得3个值。这意味着如果我传入值0,打印输出将为0 1 2。因此,这是传入的实际值加上接下来的2个连续数字

但这不仅仅是关于连续的数字。例如,如果我通过了1,我就不会期望1 2 3。相反,它应该如下所示

  • 0
    传入,因此打印
    0 1 2

  • 现在传入
    1
    <代码>0 1 2已完成上述调用。 因此,传入
    1
    将打印
    3 4 5

  • 现在传入
    2
    <代码>0 1 2 3 4 5已完成上述调用。 因此,通过
    2
    将输出
    678
    ,依此类推

下面的代码按预期工作,但以这种方式编写有点愚蠢,加上传入的值是由外部因素决定的,我事先不会知道

但如果传入的值是示例3,则算法应计算该值

已通过3的3倍(索引0-8)

因此,传入3意味着打印9、10、11

下面的代码执行上面解释的操作。但不可扩展,因此需要某种循环算法

class App {

    public static void main(String[] args) {

        App app = new App();
        app.printIndex(0); // idea is to print the index being passed in and the next 2 numbers, so 0 1 2
        app.printIndex(1); // 3 4 5
        app.printIndex(2); // 6 7 8
        app.printIndex(3); // 9 10 11
    }

    int getIndex(int i) {
        if(i == 0) return i;

        if(i == 1) return 3;

        if(i == 2) return 6;

        if(i == 3) return 9;

        return 0;
    }

    void printIndex(int i) {

        System.out.println(getIndex(i));
        System.out.println(getIndex(i) + 1);
        System.out.println(getIndex(i) + 2);
    }
}
getIndex方法只需返回i*3即可获得每3个数字。如果你只是更换这个,你的程序应该可以工作。如果将
printIndex()
方法编辑为

void printIndex(int i) {
    System.out.println(i*3+"");
    System.out.println(i*3 + 1);
    System.out.println(i*3 + 2);
}

你能不能
返回i*3
试试
System.out.println(i*3+“,”+(i*3+1)+“,”+(i*3+2))
现在感觉很傻。有道理。需要值0的异常,否则,这应该可以工作。谢谢。当然可以,你说值0的异常是什么意思?当然,不需要异常。
void printIndex(int i) {
    System.out.println(i*3+"");
    System.out.println(i*3 + 1);
    System.out.println(i*3 + 2);
}