为什么这个方法的每一个if else分支都要return一个值   否则不给编译呢 

解决方案 »

  1.   

    if和else分支只能执行其中一个,假设在if分支中有返回值,而此时正好调用的是else分支(其中没有返回值),那么就没有返回值,这样编译器就会报错。
      

  2.   

    你注意看编译器的提示,这样可以帮你解决不仅仅这一个问题
    程序在执行的时候if跟else只能选择一个,如果只在if有return执行else的时候怎么办
      

  3.   

    不是每个if else分支都要有返回值,而是不管分支怎么走,最终方法必须要有返回值。
      

  4.   

    boolean test(){
       if(ture){
         .....
         return true;
       }else{
       ......//如果进入这个分支,
              //将没有返回值,void与boolean矛盾了
       }}
      

  5.   

    这是为了保证该方法肯定有返回值.你不想在每个if-else里加return也可以这样
    boolean test(){
      boolean flag = false;
       if(xxxx){
         .....
       }else{
        ....
       flag = true;
       }return flag;
    }
      

  6.   

    这个方法需要一个返回值,if else 是分支。原因就这么简单
      

  7.   

    首先假如你肯定你的程序会执行某个条件
        如果是:你何必用if-else
       如果不是:那就ok编译器是永远不知道是否肯定会执行某个判断的
      

  8.   

    为什么这个方法的每一个if else分支都要return一个值   否则不给编译呢 不一定把。
    boolean fun()
    {
      int x;
      int y;
       if(1>2)
       {
        x=33;
         }
    else
       {x=1}  if(12>100)
     { x=121; }
    else
     { y=1000;} return x==y;
    }
      

  9.   

    给你举个例子
    假设有个apple类
    apple类里有个eat的方法
    这个方法需要一个返回值,那就是吃后的感觉,好吃=true 不好吃=false。
    如果有一个people方法去调用apple类里的eat方法,如果你不给个反馈,你说是不是就不对了。至于 你说的if else 中都要写返回值,这个没有必要吧,你可以写也可不写,但是在方法结尾要有return,否则就像你说的编译时会报错。
      

  10.   

    如果一个方法声明有个boolean类型的返回值,那么在方法体中(包含任何一个能执行完的分支)必须用return语句返回一个boolean类型的值,若编译器检测到某个分支没返回任何值,就会报错(用throw除外)。