java 如何在while循环中迭代条件?Beanshell

jvlzgdj9  于 2023-01-24  发布在  Java
关注(0)|答案(1)|浏览(161)

编辑从我原来的职位,因为我发现了一个工作左右。
我尝试使用while循环来检查输入是否存在。我的输入大小可以变化,这意味着我可以在一个case中有一个输入,或者在另一个case中有多个输入。如果输入存在,我使用while循环来执行许多行代码。问题是我知道我在一个case中至少有一个输入,但在另一个case中可能有5、6、7等。
例如,如果我有:

input0="taco";
input1="water";
input2="sand";

记住上面的例子,我如何迭代while循环的条件以确保input0、input1和input2得到执行?
在这个例子中,只要input0、1、2存在并被定义,while循环中的所有命令都会被执行,我希望整数q会随着每个输入而缩放,while循环中的代码会基于当前输入执行。
当循环到达input3时,我希望它退出循环,因为那个输入不存在。
我目前有以下内容:

int q=0;
String inputV =input(q);

while(inputV.contains("~")){ //first iteration takes "taco"

    //This is where my long lines of code that need to be executed are
    // I'm hoping that q will populate with 0,1,2 as the loop goes on and take "taco" "water" "sand" respectively

    q++;
    inputV=input(q); 
    //The next iteration will be input(1) = input1 which is "water"
    }

新的编辑给出了罗杰的评论。我在定义全局变量时遇到了麻烦。

String input(int q) {
    String field = "input" + q;
    
     public class namespace{ 
       public static String global.variables = field;
       public static String getVariable; //what should this be defined as??
       public static String this.variables } //what should this be defined as??
    
    for (String f: global.variables) {
     if (f.equals(field)) {
       return (String) this.namespace.getVariable(field);
       }
     }
     return null;
   }
   
   int q=0;
   String inputV = input(q);
   while(inputV != null) {
       print(q + " " + inputV);
       print("The input parameter is not null");
       print("The input value is " + inputV);   
      // long lines of code executed within the while loop
      q++;
      inputV=input(q); }
u91tlkcl

u91tlkcl1#

你可以在this.variablesglobal.variables或者namespace.getVariableNames()中找到定义好的变量,所以使用helper方法是可行的,在下面的例子中我假设它们是在全局空间中定义的。

input0="taco";
input1="water";
input2="sand";

String input(int q) {  
  String field = "input" + q;
  for (String f: global.variables) {
    if (f.equals(field)) {
      return (String) this.namespace.getVariable(field);
    }
  }
  return null;
}

int q=0;
String inputV = input(q);
while(inputV != null) {
    System.out.println(q + " " + inputV);
    q++;
    inputV=input(q); 
}

但是,难道没有更好的方法来定义数组或列表之类的值吗?

相关问题