基本上我有四个功能
f1
f2
f3
f4
我需要创建一个for循环或while循环,它将为每次迭代调用每个函数
所以第一次迭代
1st = f1
第二次
2nd = f2
如果循环运行8次,那将是
f1()
f2()
f3()
f4()
f1()
f2()
f3()
f4()
我正在使用java
,我认为我需要使用%
运算符
由于
答案 0 :(得分:1)
最简单的方法是在循环索引上使用开关和模数运算符。例如:
public class Main {
static void f1() {
System.out.println("f1");
}
static void f2() {
System.out.println("f2");
}
static void f3() {
System.out.println("f3");
}
static void f4() {
System.out.println("f4");
}
public static void main(String[] args) {
for (int i = 0; i < 16; ++i) {
switch (i % 4) {
case 0:
f1();
break;
case 1:
f2();
break;
case 2:
f3();
break;
case 3:
f4();
break;
}
}
}
}
正如@Andreas指出的那样,一旦你记住了用于函数的正确类型(在这种情况下为Runnable
),这可以通过数组完成:
// ...
static Runnable[] functions =
{ Main::f1, Main::f2, Main::f3, Main::f4 };
public static void main(String[] args) {
for (int i = 0; i < 16; ++i)
functions[i % 4].run();
}
Runnable
与Callable
并不完全一致,所以这似乎有点误用,但我不会通过类型看到一种简单的方法来做到这一点java.util.function
。
答案 1 :(得分:-2)
嵌套if-else的开关可以完成这项工作。范围是1到4,因为你有4个功能。我认为你不需要%运算符就可以了。