怎么把return放到最里面的if里?

public String code()
{
//用原生request得到参数
HttpServletRequest hsq=ServletActionContext.getRequest();
String password1=hsq.getParameter("password");
String loginname1=hsq.getParameter("loginname");
System.out.println(password1);
System.out.println(loginname1);
Admindao ad=new Admindao();
List ls=ad.get();
System.out.println(ls);

       if(loginname1!=null&&password1!=null)
       {
          for(int a=0;a<ls.size();a++)
        {
            String str=  ls.get(a).getLoginname();
            String str1=   ls.get(a).getPassword(); 
            System.out.println(str);
            System.out.println(str1);
            if(str.equals(loginname1)&&str1.equals(password1))
            {

            }
        }

          return "success";        

       }

你就是 放在最里面的 if 中 外面也要写个 return 啊

if(loginname1!=null&&password1!=null)
{
for(int a=0;a<ls.size();a++)
{
String str= ls.get(a).getLoginname();
String str1= ls.get(a).getPassword();
System.out.println(str);
System.out.println(str1);
if(str.equals(loginname1)&&str1.equals(password1))
{
return "success";
}
}

   }
            return null; 

为什么要放到里面,你的问题是什么?

我想边遍历边判断;如果相等就返回success

 if(loginname1!=null&&password1!=null)
    {
        for(int a=0;a<ls.size();a++)
        {
            String str= ls.get(a).getLoginname();
            String str1= ls.get(a).getPassword();
            System.out.println(str);
            System.out.println(str1);
            if(str.equals(loginname1)&&str1.equals(password1))
            {
                return "success";
            }
        }

    }
    return null; 

这样写就可以啊,如果是直接返回null,说明:
1)你输入的loginname1password1有问题
2)ls中根本就没有和你输入匹配的

  应该是在if条件判断有相等的时候就返回success,就是把返回语句挪动到上一行,然后再在方法的最后一行返回error值,说明帐号密码检验不通过。

我的整个代码是这样的
public String code()
{

    //用原生request得到参数
    HttpServletRequest hsq=ServletActionContext.getRequest();
    String password1=hsq.getParameter("password");
    String loginname1=hsq.getParameter("loginname");
    //System.out.println(password1);
    //System.out.println(loginname1);
    Admindao ad=new Admindao();
    List<Admin_1> ls=ad.get();
    //System.out.println(ls);
    //String str[]={};

       if(loginname1!=null&&password1!=null)
       {
          for(int a=0;a<ls.size();a++)
        {
            String str=  ls.get(a).getLoginname();
            String str1=   ls.get(a).getPassword(); 
            System.out.println(str);
            System.out.println(str1);
            if(str.equals(loginname1)&&str1.equals(password1))
            {
                 return "success";  
            }

        }                       
       }
       else
        {
            return "error";
        }
}   
可是这样不行啊

因为public String code()方法必须有个返回值,
当你把return放在if中时,如果if条件不满足,相当于方法没有返回值,所以编译器通不过。
如果有个else 里面也有个return就没有问题