1

我认为以下应该这样做 - 但似乎并非如此。

int[] jokes=new int[]{5,7,8,9,3,4,6,1,7};
        for(int k=0;k<jokes.length && jokes[k]%2==0;k++){
            System.out.println(jokes[k]);
        }

无论如何,在函数内进行评估都会起作用 - 但想检查是否有办法在 for 循环定义本身中过滤搜索(也许通过在循环定义本身中调用函数?)如果我们能实现那将非常酷.

4

10 回答 10

4

尝试这个:

 for(int k=0; k< jokes.length; k+=2){ 
     System.out.println(items[k]); 
   }
于 2013-04-17T13:50:01.003 回答
2

试试看

int[] jokes = new int[] { 5, 7, 8, 9, 3, 4, 6, 1, 7 };

for (int k = 0; k < jokes.length ; k++) {
    if (jokes[k] % 2 == 0) {
        System.out.println(jokes[k]);
    }           
}
于 2013-04-17T13:53:33.883 回答
2

您的循环将持续到k < jokes.length && jokes[k] % 2 == 0错误为止。
因此,对于您的示例输入,它将立即退出。

您需要将检查放入循环中:

int[] jokes = new int[] { 5, 7, 8, 9, 3, 4, 6, 1, 7 };
for (int k = 0; k < jokes.length; k++) {
    if (jokes[k] % 2 == 0) {
        System.out.println(jokes[k]);
    }
}
于 2013-04-17T13:49:04.287 回答
2

没有理由把事情复杂化。

int[] jokes = new int[]{5,7,8,9,3,4,6,1,7}
for(int k = 0; k < jokes.length; k++){
    if(jokes[k] % 2 == 0){
        System.out.println(jokes[k]);
    }
}
于 2013-04-17T13:48:18.783 回答
1

也许您想在k每个迭代步骤中增加 2?

for(int k=0; k<jokes.length; k+=2){
    System.out.println(items[k]);
}
于 2013-04-17T13:50:58.137 回答
1
int[] jokes=new int[]{5,7,8,9,3,4,6,1,7};
for(int k=0; k<jokes.length; k++){
    if(jokes[k]%2 == 0){
        System.out.println(jokes[k]);
    }
}

在循环内进行检查以允许for语句遍历整个数组。

于 2013-04-17T13:49:21.373 回答
1

循环中的第二个条件for将在循环中看到笑话[k] 中的奇数时立即停止。所以我会将其重写为:

    int[] jokes=new int[]{5,7,8,9,3,4,6,1,7};
    for(int k=0;k<jokes.length;k++){
        if (jokes[k]%2 == 0)
        {
            System.out.println(items[k]);
        }
    }
于 2013-04-17T13:49:25.247 回答
0

您正在遍历jokes数组,但打印完全items[k]另一个数组。这应该做。

        int[] jokes=new int[]{5,7,8,9,3,4,6,1,7,2,10,-2,-1};
        for(int k=0;k <jokes.length ;k++){
            if(jokes[k] % 2 == 0)
            {
                System.out.println(jokes[k]);
            }
        }
于 2013-04-17T13:50:59.933 回答
0

我不确定您要做什么,但下面的代码可以解决问题。请注意, System.out.println 应该有笑话[k] 而不是 items[k]

        int[] jokes=new int[]{5,7,8,9,3,4,6,1,7};
        for(int k=0;k<jokes.length;k++){
            if (jokes[k]%2==0)
                System.out.println(jokes[k]);
        }
于 2013-04-17T13:51:12.367 回答
0

这是固定代码。

    int[] jokes=new int[]{5,7,8,9,3,4,6,1,7};
    for(int k=0;k<jokes.length;k++){
        if (jokes[k]%2==0) {
               System.out.println(items[k]);
        }
    }

检查它。这很容易理解。

于 2013-04-17T13:48:51.443 回答