【问题标题】:Return boolean in java?在java中返回布尔值?
【发布时间】:2015-02-14 09:57:19
【问题描述】:

我需要这个问题的帮助。

"在 ChkNum 类中,方法 inEven() 如果传入的值返回" 是偶数。它返回假是奇数。因此 isEven() 的返回类型是布尔值。"

下面那几行也不能改。

if(e.inEven(10))System.out.println("10 is even");

if(e.inEven(9))System.out.println("9 is even");

if(e.inEven(8))System.out.println("8 is even");"

我是java初学者。 我尝试像下面的程序一样完成这个问题。无论如何,它不起作用。=( 我做错了什么?

public class ChkNum{

boolean inEven=true;

public boolean inEven(int o)
{   
    if ((o%2)==0) { inEven = true;} 
    else  
    { inEven = false;}
        return inEven;  
       }
    ;
}

class main{
public static void main(String args[])

  {ChkNum e=new ChkNum();

    if(e.inEven(10))System.out.println("10 is even");
    if(e.inEven(9))System.out.println("9 is even");
    if(e.inEven(8))System.out.println("8 is even");


    }
}

【问题讨论】:

  • return 移出else 的范围。
  • 编译错误?或者你把return放在“else”里面?

标签: java boolean return


【解决方案1】:

如果你缩进你的代码,你会发现问题:

public boolean inEven(int o)
{
    if ((o%2)==0) { 
        inEven = true;
    } else { 
        inEven = false;
    }
    return inEven;  
       } // remove this
    ; // remove this
}

inEven 设为局部变量也更有意义(即,在inEven 方法中声明它)。

【讨论】:

  • @zegkljan 对于 OP 来说,这看起来像是一种魔法,他们在摆脱不必要的大括号方面存在问题。
【解决方案2】:

请注意,虽然其中一些答案有效,但代码可以简化:

public class ChkNum {

     //boolean inEven=true;

     public boolean inEven(int o) {

        //if ((o%2)==0) {
        //    inEven= true;
        //} else {
        //    inEven = false;
        //}
        //return inEven;

        // replace the above with:
        return o % 2 == 0;
    }
}

这将使代码更简洁易读。它还消除了对全局变量 inEven 的需要。布尔表达式已经返回一个布尔值,因此您可以简单地返回它。

为了完整性,这里是 Test 类(保持不变):

public class Test {
    public static void main (String args[]) {
        ChkNum e = new ChkNum();
        if(e.inEven(10))System.out.println("10 is even");
        if(e.inEven(9))System.out.println("9 is even");
        if(e.inEven(8))System.out.println("8 is even");     
    }
}

【讨论】:

    【解决方案3】:

    返回布尔值没有具体的方式,可以通过同样的方式返回任意类型

    1.Boolean

    public boolean inEven(int o)
    {
        if ((o%2)==0) { 
            inEven = true;
        }  else  { 
            inEven = false;
        }
        return inEven;  
    
    }
    

    2.整数

    public int inEven(int o)
    {
        if ((o%2)==0) { 
            inEven = 1;
        }  else  { 
            inEven = 0;
        }
        return inEven;  
    
    }
    

    就像String,Double 等一样,您可以返回任何类型值。

    【讨论】:

      【解决方案4】:

      您的代码缩进很糟糕,为什么不让自己简单明了,您有时间成为专业人士并以风格编写..

      那是你的 inEven 函数..

      public boolean inEven(int o)
      {   
          if ((o%2)==0) { inEven = true;} 
          else  
          { inEven = false;}
              return inEven;  
           } // <- What is this doing
        ; // <-What is this doing
      }
      

      应该是这样的:

        public boolean inEven(int o)
          {   
              if ((o%2)==0)
              { 
                inEven = true;
              } 
              else  
              { 
                 inEven = false;
              }
                  return inEven;  
          }
      

      【讨论】:

        【解决方案5】:
               public class ChkNum {
                    public boolean inEven(int o) {   
                           return o%2 ==0;
                    }
               }
        

        【讨论】:

          【解决方案6】:

          你可以试试这个-

          public boolean inEven(int o)
          {   
              if ((o%2)==0) 
             { 
              inEven = true;
             } 
              else  
              { 
                inEven = false;}
              }
             return inEven; 
          }
          

          【讨论】:

            【解决方案7】:

            试试这个

            public boolean inEven(int o)
            {   
                 if ((o%2)==0) { inEven = true;} 
                 else  
                 { inEven = false;}
            
                 return inEven;  
            
             }
            

            【讨论】:

              猜你喜欢
              • 2013-03-28
              • 2021-04-04
              • 2022-01-10
              • 1970-01-01
              • 2017-07-31
              • 2013-08-18
              • 1970-01-01
              • 1970-01-01
              • 2011-12-14
              相关资源
              最近更新 更多