簡體   English   中英

從Java中具有多個循環的方法返回單個字符串

[英]Returning a single string from a method with multiple loops in java

我是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";
  }
  }

如果任何for循環返回“失敗”,則全部方法返回失敗

for循環不返回值。 循環中的那些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"

}

請注意,這種類似短路的方法將比通過方法的結果保持變量更有效,因為一旦知道返回值應該是什么,繼續進行該方法就不會浪費時間。

只需使用一個默認值為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;
 }

旁注:不確定字符串B,C,D的聲明String1 .....等。請注意它們(如果尚未完成)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM