Java for值跳转的循环
如果我有三个变量,我希望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%肯定我理解你的问题
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));
}
}