gpt4 book ai didi

java - 额外的 while 循环条件......基于条件

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:54:21 24 4
gpt4 key购买 nike

变量 a 可以是 0、1 或 2,其中值是额外的 while 循环条件的数量。我可以使用 switchcase 来做到这一点,但我想知道是否有更好的方法?

switch (a) {
case 0: while (condition_1) {
// ...
} break;
case 1: while (condition_1 || condition_2) {
// ...
} break;
case 2: while (condition_1 || condition_2 || condition_3) {
// ...
} break;
}

这个问题的解决方案在Python是使用字典并将适当的 lambda 表达式存储在适当的索引中。但是,我的条件“不是最终的或实际上是最终的”,因此不能在 Java 的 lambda 表达式中使用它们。

此处的目的不是获取 while (true)while (false) 并完成它。它以 while (...something) 开始,它的计算结果为 false 然后在循环内执行一些操作,将所有条件一一更改为 true。但直到所有条件都为真,继续循环。

伪代码(我知道它有一些缺陷,只是为了演示):

a can be 0,1,2

p = 5
q = 7
r = 10
s = 14

if a = 1
while p != q -> p+=1
if a = 2
while p!= q || p!= r -> p+=1

此外,这是一个教我钓鱼而不是给我鱼类型的问题。

最佳答案

假设您定义了一个条件列表。

boolean[] condition = new boolean[n];

a 是您要检查的 boolean 值的数量,因此只需创建一个新变量

boolean valid = false;


//check all conditions up to a
for (int i = 0; i < a; i++) {
if (condition[i]) {
valid = true;
break;
}
}

while (valid) {
//perform action and then run the checking valid code again
}

在这种情况下,您将总共检查 a 条件,这就是您想要的。

关于java - 额外的 while 循环条件......基于条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36254062/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com