如何从其他类的循环返回if else值

时间:2016-04-04 10:34:07

标签: java

我有一个两个类。在类A中我调用另一个类B方法,它在for循环中有if / else语句。现在我必须每次在类A上返回if / else的值

A类

    public class ClassA extends ClassB {
    public void checkSuiteInExcelToRun() throws IOException {
    getResult();
    System.out.println("po: "+getResult());
    }
    }

B类

public class  ClassB {

public String getResult(){

        int sheetIndex=wb.getSheetIndex(wsName);
        int rowNum = "3";
            int colNum ="3";
        for(int i=1;i<rowNum;i++){
                Row Suiterow = ws.getRow(i);
                for(int j=1;i<colNum;j++){
                     op =Suiterow.getCell(j).getStringCellValue();
                System.out.println("get value:----"+op  );
                if(op.equalsIgnoreCase("Y")){
                    System.out.println("op is  "+op);
                break;
                }
                else if (op.equalsIgnoreCase("N")) {
                    System.out.println("op is  " + op);
                    break;
                }
                }

            }
            return op;
}

这里我从类A调用getresult()。现在假设对于循环1单元格值,即op = y然后它也返回&#34; Y&#34;对于A类。现在对于循环2,单元格值即op = N然后它也返回&#34; N&#34;到A级......等等。但是目前正在发生的事情,它只返回最后一个循环值,即在上述条件下仅返回最后一个值&#34; N&#34;

我希望所有循环值都应该返回到A类

2 个答案:

答案 0 :(得分:0)

回答您的疑问:

它返回的最后一个值:它只返回1个值,因为一旦遇到return语句,当前方法就会停止执行并将控制权传递回调用函数。

因此,您应该将值存储在Arraylist中并返回arrayList而不是单个值。

如果你想避免使用集合(由于某些原因),你可以在你的A类中使用for循环。

答案 1 :(得分:0)

我回答了我发布的问题。我发布这个以便其他人可以推荐它

仅在B类中进行更改

B类

public class  ClassB {

public String getResult(){

        int sheetIndex=wb.getSheetIndex(wsName);
        int rowNum = "3";
            int colNum ="3";
        for(int i=1;i<rowNum;i++){
                Row Suiterow = ws.getRow(i);
                for(int j=1;i<colNum;j++){
                     op =Suiterow.getCell(j).getStringCellValue();
                System.out.println("get value:----"+op  );
                if(op.equalsIgnoreCase("Y")){
                    System.out.println("op is  "+op);
                return op;
                }
                else if (op.equalsIgnoreCase("N")) {
                    System.out.println("op is  " + op);
                    return op;
                }
                }

            }
            return op;
}