java - 循环遍历值

时间:2012-10-12 23:06:22

标签: java for-loop

我正在尝试创建一个嵌套的for循环,它将生成用户指定范围内的所有对,范围从负值到正值。这有点难以解释,但这是我的代码:

public class test method {

    public static void main (String[] args) {

    int a = Integer.parseInt(args[0]);
    int b = Integer.parseInt(args[1]);
    int c = 3;
    int d = 4;

    for (int i = -a; i <= a; i++)
        for (int j = -b; j <= b; j++) {

            System.out.println(a+" and "+b+" vs "+c+" and "+d+"\n");

        }

    }

}

给定命令行参数1和2,我想要的输出类似于:

-1和-2 vs 3和4

-1和-1 vs 3和4

-1和0 vs 3和4

-1和1 vs 3和4

-1和2 vs 3和4

0和-2 vs 3和4

0和-1 vs 3和4

0和0 vs 3和4

0和1 vs 3和4

0和2 vs 3和4

1和-2 vs 3和4

1和-1 vs 3和4

1和0 vs 3和4

1和1 vs 3和4

1和2 vs 3和4

2 个答案:

答案 0 :(得分:1)

我认为第一个中缺少括号是副本中的问题。粘贴,但如果这是你真正的代码,你就会遇到问题。

a = Math.abs(a);
b = Math.abs(b);

for (int i = -a; i <= a; i++) {
    for (int j = -b; j <= b; j++) {
        System.out.println(i+" and "+j+" vs "+c+" and "+d+"\n");
    }
}

两件事。首先,您应该打印ij,其次您还应该考虑负值。如果for导致

,那么-a的{​​{1}}将会失败
a = -1

不符合条件,不会进行迭代。通过执行for (int i = 1; i <= -1; i++) ,您可以获得输入的绝对值,并且可以从该负值到正值进行迭代。如果Math.absa都是肯定的,b方法将返回相同的值(为absa指定相同的值)。< / p>

bc应该做些什么还有待观察。你想要的输出就是你把它们留下来,所以我现在不会碰它们。

答案 1 :(得分:0)

看起来合理,'-a'业务的例外(并打印错误的变量)

假设a / b始终为正,请尝试

for (int i = (0-a); i <= a; i++)
    for (int j = (0-b); j <= b; j++) {
        System.out.println(i+" and "+j+" vs "+c+" and "+d+"\n");