2

我是 Java 新手,很难从具有多个 for 循环的方法返回单个字符串,每个循环迭代 25 次并为每次迭代返回通过/失败。我试图弄清楚如果任何for循环返回“失败”该怎么办,总体方法返回失败,否则它只返回“通过”?以下是我拥有的通用代码。

    public String myMethod (String string, String string2) {

    for (int i = 0; i < 25 ; i++){
      B = string1 + i + string 2;
      if (B.equals("something"){
        return "Pass";
      }else{
        return "Fail";
    }

    for (int j = 0; j < 25 ; j++) {
     C = string3 + i + string 4;
      if (C.equals("something")){
        return "Pass";
     }else{
        return "Fail";
   }

   for (int k = 0 ; k < 25 ; k++) {
    D = string4 + i + string 5;
    if (D.equals("something")){
      return "Pass";
   }else{
     return "Fail";
  }
  }
4

2 回答 2

4

如果任何 for 循环返回“失败”,则总体方法返回失败

-loopsfor不返回值。循环中的那些return语句正在返回整个方法的值。然而,这不应该是一个真正的问题,因为你可以按照以下方式做一些事情

public String myMethod(String string1, String string2) {

    for (int i = 0; i < 25; i++) {
        B = string1 + i + string2;
        if (!B.equals("something"))
            return "Fail";  // we know the entire method should
                            // return "Fail" here
    }

    // other loops, same format

    return "Pass";  // we know nothing returned "Fail" at this point,
                    // so we return "Pass"

}

请注意,这种短路式方法比使用方法的结果维护变量更有效,因为一旦我们知道它的返回值应该是什么,就不会浪费时间继续该方法。

于 2013-06-18T16:12:17.047 回答
2

只需使用一个默认为PASS的变量。失败时将值设置为FAIL并最终返回,如下所示:

public String myMethod (String string, String string2) {
   String result = "Pass";
   for (int i = 0; i < 25 ; i++){
      B = string1 + i + string2;
      if (!B.equals("something"){
        result = "Fail";
      }
   }

   for (int j = 0; j < 25 ; j++) {
     C = string3 + i + string4;
     if (!C.equals("something")){
        result = "Fail";
     }
   }

  for (int k = 0 ; k < 25 ; k++) {
    D = string4 + i + string5;
    if (!D.equals("something")){
        result = "Fail";
    }
  }
  //return the final result, which is fail if it fails one ore more times
  return result;
 }

旁注:不确定String B,C,D String1 .....等的声明。如果尚未完成,请注意它们。

于 2013-06-18T16:11:33.263 回答