我是Java的新手,很难从具有多个for循环的方法返回单个字符串,每个循环迭代25次并为每次迭代返回pass / fail。我试图找出该怎么做,如果任何for循环返回“失败”,则all over方法返回失败,否则它只返回“pass”?以下是我的通用代码。
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";
}
}
答案 0 :(得分:4)
如果任何for循环返回“fail”,则all over方法返回失败
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"
}
请注意,这种短路式方法比使用方法结果维护变量更有效,因为一旦我们知道它的返回值应该是什么,就不会浪费时间继续该方法。
答案 1 :(得分:2)
只需使用一个默认为 PASS 的变量。失败时将值设置为失败,最后返回如下:
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等的声明。如果尚未完成,请注意它们。