Java for值跳转的循环

Java for值跳转的循环,java,for-loop,Java,For Loop,如果我有三个变量,我希望for循环中的一个值从一个跳到下一个,我该怎么做?您可以假设第一个变量最小,第三个变量最大,并且变量之间不相等(尽管如果有一种方法可以在它们相等的地方实现这一点,那就好了) 我举了一个例子,如果只有两个值 int val1 = 5; int val2 = 9; for(int i = val1; i <= val2; i=i+(val2-val1) { } int-val1=5; int val2=9; 对于(inti=val1;i我不能100%肯定我理解你的问题

如果我有三个变量,我希望for循环中的一个值从一个跳到下一个,我该怎么做?您可以假设第一个变量最小,第三个变量最大,并且变量之间不相等(尽管如果有一种方法可以在它们相等的地方实现这一点,那就好了)

我举了一个例子,如果只有两个值

int val1 = 5;
int val2 = 9;
for(int i = val1; i <= val2; i=i+(val2-val1) {
}
int-val1=5;
int val2=9;

对于(inti=val1;i我不能100%肯定我理解你的问题,但你可以做到

for(int i = val1; i <= val2; i = (i == val1) ? val2 : val2+1) {
    // ...
}

您可以将它们放在一个数组中,并通过索引访问它

class Ideone
{
    public static void main (String[] args) throws java.lang.Exception
    {
        // your code goes here
        int[] myArray = {4, 6 , 9};
        for(int x : myArray)
        {
            System.out.println(x);
        }
        //or....

        for(int x =0; x<3; x++)
        {
            System.out.println(myArray[x]);
        }
    }
}
类表意符
{
公共静态void main(字符串[]args)引发java.lang.Exception
{
//你的密码在这里
int[]myArray={4,6,9};
for(int x:myArray)
{
系统输出println(x);
}
//或者。。。。

对于(int x=0;x,正如@Gonen我所说,您可以使用
stream
来处理这个问题。如果您想要“…第一个变量是最小的,第三个是最大的…”,您应该使用
stream.sorted()
来获得排序值

x
在遍历时对应于
vals
列表中的每一个元素。因此,您可以使用
x
forEach
块中执行任何操作

List<Integer> vals = Arrays.asList(5,9,17);

vals.stream().sorted().forEach(x -> {
    System.out.println(x);
});
List vals=Arrays.asList(5,9,17);
vals.stream().sorted().forEach(x->{
系统输出println(x);
});

如果我们已经有点傻了,这将在for循环中为您想要的任意多个值提供帮助。但我不会真正编写这样的代码,因为它完全不可读:

package package1;

public class SillySkip {

    public static void main(String[] args) {
        for( int data[] = {5,10,-4}, i, j=0; j < data.length && (i = data[j]) % 1 == 0 ; ++j )
        {
            System.out.println(i);
        }
    }

}

将值放入
数组
中,然后在java 8或更高版本中的
数组
中的值上循环,使用Stream.of(val1、val2、val3)。forEach@GonenI什么是Stream.of?可能将for循环逻辑的主体放在一个方法中并调用它:foo(val1);foo(val2);foo(val3)你有多少个变量?如果你要处理2个或3个,那么for循环似乎很复杂。如果你要处理几十个或数百个变量,那么建议列表的注释+答案似乎是个好主意。我理解数组方法,但增量是如何工作的?如果它不是
val1
它不应该让它成为
val3
?@NabilotexD三元运算符。如果
i
val1
则将其更改为
val2
。否则将其设置为
val2+1
(以结束循环)@ElliottFrisch这当然要求值按升序排列,并且小于max_值。它说它找不到
List
你应该添加导入:
import java.util.List;
我在添加一些解释,请询问你不理解的点。
package package1;

public class SillySkip {

    public static void main(String[] args) {
        for( int data[] = {5,10,-4}, i, j=0; j < data.length && (i = data[j]) % 1 == 0 ; ++j )
        {
            System.out.println(i);
        }
    }

}
package package1;

import java.util.stream.Stream;

    public class IterateSomeValues {

        public static void main(String[] args) {
            Stream.of(5,10,-4).forEach(e->System.out.println(e));
        }

    }