Java 调用其他方法时返回语句不起作用

Java 调用其他方法时返回语句不起作用,java,return,bluej,method-call,Java,Return,Bluej,Method Call,我最近开始试验return语句,对此我有一个小小的疑问——当我有一个方法调用另一个方法时,会显示我调用的那个方法的return语句吗 让我们举一个例子,让它更清楚- /** Program to test return statment */ public class Test { public static void main(int a) { EvenOrOdd(a); } private static boolean EvenOrOdd(int a)

我最近开始试验return语句,对此我有一个小小的疑问——当我有一个方法调用另一个方法时,会显示我调用的那个方法的return语句吗

让我们举一个例子,让它更清楚-

/** Program to test return statment */

public class Test
{
   public static void main(int a)
   {
      EvenOrOdd(a);
   }
   private static boolean EvenOrOdd(int a)
   {//I can declare as public and run directly but then what is the point in calling     the method?
      if(a%2==0) 
      {
        System.out.println("The output is true.");//Displays
        return true;//Does not display(As in that window does not pop up with the result.)
      }
      else
      {
        System.out.println("The output is false.");//Displays  
        return false;//Does not display
      }

   }
}
如果我只是删除main方法(或者甚至公开第二个方法并直接运行),我的return语句将显示,但是如果我尝试调用该方法并运行程序,我的return语句将不显示

那么,这只是我面临的一个问题,还是Java中的一个普遍规则,即当您调用另一个方法(其中有一个return语句)时,return语句不起作用

如果是后者,那么我道歉,我没有意识到这一点

谢谢

                               ***UPDATE***
似乎没有人明白我的确切意思。我再举一个例子-

请运行此程序-:

/** Program to test Return statment;simple program to return sum of two digits */

public class Return_Test
{
   public static int main(int a,int b)
   {
    return a+b;//What I am lloking for is that box in which this is displayed.
   }
}

return语句只返回值,不显示它 如果没有捕获返回值,如何显示它?添加类似这样的内容并尝试 ,

请尝试学习一些好的命名约定,类是这样命名的,
第二,TestException(每个单词以大写字母开头)等,方法以小写字母开头,isPrime(),isEven(),

在方法体中,使用
返回语句返回值。它不会自己打印任何内容

更改完成-
System.out.println(evenorod5)

输出

The output is false.
false

首先将主签名从
main(inta)
更改为
main(String[]args)
,否则将出现以下运行时异常:

Error: Main method not found in class yourpackagename.Test, please define the main method as:
   public static void main(String[] args)
您没有打印函数返回的值:

main
中执行以下操作:

System.out.println(EvenOrOdd(5));
  • 您从未实际显示该方法的返回结果
  • 方法的名称是consuming
    EvenOrOdd
    返回
    true
    false
    含糊不清,may
    isEven
    会更好
  • 你可以试试像

    System.out.println(a + " is even = " + EvenOrOdd(a));
    
    您还应该避免在一个方法中使用多个
    return
    语句,这可能会很快让人对该方法的实际工作方式产生混淆,在您的情况下,您可以同时降低过度复杂性,例如

    private static boolean isEven(int a)
    {
    
        boolean isEven = false;
        if(a%2==0) 
        {
            System.out.println("The output is true.");//Displays
            isEven = true;//Does not display
        }
    
        return isEven;
    
    }
    

    许多其他响应程序不知道的是,当您在BlueJ中运行一个方法时,它会执行该方法,如果该方法的返回值为非void,则会通过调用toString在弹出对话框中显示。这就是提问者所说的显示值的意思

    用户最初问题的答案是,通过使用void返回包围方法,它“隐藏”了结果。所以这个代码:

    public void callMe1(int a)
    {
        EvenOrOdd(a);
    }
    
    将不显示报税表。但如果调整返回类型并实际返回内部调用的值:

    public int callMe2(int a)
    {
        return EvenOrOdd(a);
    }
    

    然后BlueJ将显示返回的值。显示方面取决于BlueJ,但返回值与否的规则与Java中的相同;void意味着不返回。

    我看不到任何应该显示的地方…@Eran这是BlueJ,允许您接受希望作为主方法输入的任何数据类型。似乎您缺少一个
    System.out.println
    。添加此语句
    System.out.println(EvenOrOdd(a))以显示返回的function@JackSullyBlueJ在学习编程基础时是一个有用的工具,它有助于将复杂的语法推迟到以后,即使没有诸如System.out.println(“”)之类的终端I/O,也可以检查返回值,但我不确定它是如何完成的,我建议你要么遵循这种学习方式,要么遵循传统的学习方式,即在忽略任何你不理解的关键字的时候,尽早让自己接触语法,这样键入,稍后当你在学习了基础知识之后来到这一部分时,你可以探索…@DroidIcs Hmmm…你是对的,我想我必须耐心等待。谢谢…不,不,不要做递归。很好的建议,但不是op编程的方式。我从来没有说过任何关于递归的内容……您只需要不修改
    EvenOrOdd
    方法(根据您的原始答案),只需显示该方法的结果……您的程序产生输出了吗?仅供参考:“这是BlueJ,允许您接受任何希望作为主方法输入的数据类型”是的,我也从未使用过它:P
    public void callMe1(int a)
    {
        EvenOrOdd(a);
    }
    
    public int callMe2(int a)
    {
        return EvenOrOdd(a);
    }