[英]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.