代码如下
public String driver(String str) {
// TODO Auto-generated method stub
if(str.equals("audi"))
return new audi().drive();
else if(str.equals("chery"))
return ""+str;
else if(str.equals("bmw"))
return ""+str;
else if(str.equals("Benz"))
return ""+str;
}
这已经return 了,为啥还要return?

解决方案 »

  1.   


    但是 我加过 return 后我传个audi
    执行的是最后的那个return 语句。 
      

  2.   

    你再加一个
    else return "";这样就不会报错了原因就是2楼说的。
      

  3.   


    最后结果是正确了
    但是会在最后出现个Null开bmw
    null
      

  4.   

    还要加个
    else{
     return ***;
    }
    不然如果传进去的str没有符合任何一个判断的话就没return了。
      

  5.   

    对传递进去的参数的处理应尽量考虑周全。同意6楼的意见。
    另外一种处理方式是放在switch case语句里面,在其最后加个default,程序的可读性会强很多。
      

  6.   

    没有缺省的返回值,如果没有if else中的情况的话就没有返回值了
      

  7.   


    public String driver(String str) {
    // TODO Auto-generated method stub
    if(str.equals("audi")){
    return new audi().drive();
    }else{
    if(str.equals("chery")){
    return ""+str;
    }else{
    if(str.equals("bmw")){
    return ""+str;
    }else{
    if(str.equals("Benz")){
    return ""+str;
    }else{
    --------
    }
    }
    }
    }
    }
      

  8.   

    10楼那里,要是你不添加最后一个else,那么出现这种情况的话,就相当于没有返回值,当然会出错!
      

  9.   

    问题就像上面的各位说的,
    你if语句接下去判断情况的话,一定要判断完毕额所以最后要接一个
    else {
       return "" ;
    }
      

  10.   

    进来之前看下str是否为null,要不然。。
      

  11.   

    你可以在最后写一个return语句或者加个else里面当然也要有return语句
      

  12.   

    这个问题上面说的很对,我补充下,其实你想下,如果你上面的情况都没有符合的,那么程序将怎样继续下去?
    要么 加个
    else{
    return null;//要求返回值是String类型
    }
    要么
    直接return null;或return;就好。这种东西,想想,在自己测试下就好。
      

  13.   

    如果都不满足if条件的话就不会执行return语句了!!!
      

  14.   

    假如上面的if语句都不执行,方法总要返回一个String吧,推荐还是用工具编写吧!!