java两个return_关于java:调用另一个方法时return语句不起作用
我最近开始尝试使用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
}
}
}
如果我只是删除主方法(或者甚至公开第二个方法并直接运行该方法),则会显示我的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.
}
}
我看不到它应该显示的任何地方...
@Eran这是BlueJ,允许您接受希望作为主方法中的输入的任何数据类型。
好像您缺少System.out.println。添加此语句System.out.println(EvenOrOdd(a));以显示函数的返回
@JackSully BlueJ是学习编程基础的一种有用工具,它有助于推迟以后的复杂语法,即使没有终端I / O也可以检查返回值,例如System.out.println("),不确定如何完成后,我建议您采用这种学习方式或常规方式,即在忽略任何您不理解的关键字时尽早暴露自己的语法,以这种方式键入,然后在学习完该部分之后再进入该部分。您可以探索的基础知识...
@DroidIcs嗯...你是对的,我想我一定要有耐心。谢谢...
您必须了解,BlueJ只是通过尽早隐藏某些细节来帮助学习的工具,通常在通常情况下,main只能是public static void main(String [] args),并且返回x是什么; statement的意思是将x还给调用者,例如x=method(); int method(){int y=5;return y;},x仅分配给y,没有代码显示它,因此您应该放置System.out.println(x)或System.out之类的语句.println(method()); ..希望为您清除它
@DroidIcs是的,非常感谢!
return语句仅返回值,不显示
如果您不了解返回值,如何显示它?添加类似的东西,然后尝试
,
public class Test
{
public static void main(int a)
{
boolean temp=EvenOrOdd(a);
if(temp)
System.out.println("Output is True");
else
System.out.println("Output False(not even )");
//Or you can directly call the method as' System.out.println(EvenOrOdd));'
}
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
}
else
{
System.out.println("The output is false.");//Displays
return false;//Does not display
}
}
}
并且请尝试学习一些好的命名约定,类的命名是这样的,
FirstSecond,TestException(每个单词以大写字母开头)等,方法以小写字母isPrime(),isEven(),
不@MadProgrammer,不。 不要做递归。 很好的建议,但不是操作员编程的方式。
我从没说过关于递归的任何事情...您只需要修改EvenOrOdd方法(来自原始答案),只需显示该方法的结果...
您的程序产生输出了吗?
许多其他响应者不知道的是,当您在BlueJ中运行一个方法时,它会执行该方法,并且如果该方法的返回值不是非无效的,则通过调用toString在弹出对话框中显示该方法。这就是发问者通过显示值来表示的意思。
用户最初问题的答案是,通过用无效返回值包围该方法,它"隐藏"了结果。所以这段代码:
public void callMe1(int a)
{
EvenOrOdd(a);
}
将不会显示退货。但是,如果您调整返回类型并实际返回内部调用的值:
public int callMe2(int a)
{
return EvenOrOdd(a);
}
然后,BlueJ将显示返回的值。显示方面取决于BlueJ,但是是否返回值的规则与Java中的规则相同。空意味着没有回报。
您从不实际显示方法的返回结果...
该方法的名称消耗了EvenOrOdd返回true或false是模棱两可的,也许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;
}
首先将您的主签名从main(int a)更改为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));
仅供参考:"这是BlueJ,它允许您接受希望作为主方法输入的任何数据类型"
是的,我也从未用过它:P
在方法的正文中,使用return statement to return the value。它不会自行打印任何内容。
完成的更改-System.out.println(EvenOrOdd(5));
public class Test {
public static void main(String[] args) {
System.out.println(EvenOrOdd(5));
}
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
} else {
System.out.println("The output is false.");// Displays
return false;// Does not display
}
}
}
输出量
The output is false.
false
java两个return_关于java:调用另一个方法时return语句不起作用相关推荐
- java方法的调用怎么跳出_JAVA 的一个方法调用另一个方法时,怎么把那个方法里的数据调用出来...
例如:此例子中Calcute()方法调用dispMax()方法时,怎么把curCost的数据调用到publicListgetBidListByName1(Stringname)中来,,,谢谢大家来帮忙 ...
- java对象名不可以是_java运行一个方法时如何得到该个对象的名字(不是类的名字)....
展开全部 可以通过StackTrace从栈顶往下62616964757a686964616fe4b893e5b19e31333332623239倒 String clsname = "Cla ...
- 字符串右移n位,例如 “hello world“ 右移两位 后ldhello wor 要求写一个方法实现此功能,方法的格式是 String moveToRight(String str,int po
字符串右移n位,例如 "hello world" 右移两位 后ldhello wor 要求写一个方法实现此功能,方法的格式是 String moveToRight(String s ...
- java 两字符串相同,关于java:使用==比较两个相同的字符串将返回false
本问题已经有最佳答案,请猛点这里访问. 我正在为我的家人制作档案.没有语法错误,但是每当我在"Maaz"中键入时,它将realName =="Maaz"计算为f ...
- java switch配合return_关于Java switch语句:关于Java switch语句 – 在每种情况下使用return和省略break...
鉴于这种方法,这是否代表了一些令人震惊的风格或语义失误: private double translateSlider(int sliderVal) { switch (sliderVal) { ca ...
- java性能优化方案4——不要调用高开销方法
4.不要调用高开销方法 有些方法的开销很大.以 N.O.P.E 分支为例,我们没有提到叶子的相关方法,不过这个可以有.假设我们的JDBC驱动需要排除万难去计算 ResultSet.wasNull() ...
- Java基础篇:为Box类添加一个方法
尽管创建一个仅包含数据的类是相当不错的事情,但这样的情况很少发生.大部分情况是你将使用方法存取由类定义的实例变量. 事实上,方法定义大多数类的接口.这允许类实现函数可以把内部数据结构的特定布局隐蔽到方 ...
- Spring service本类中方法调用另一个方法事务不生效问题
前些日子一朋友在需要在目标对象中进行自我调用,且需要实施相应的事务定义,且网上的一种通过BeanPostProcessor的解决方案是存在问题的.因此专门写此篇帖子分析why. 1.预备知识 aop概 ...
- 在同一个类中调用另一个方法没有触发 Spring AOP 的问题
实例: @Target(value = {ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented public @in ...
最新文章
- 全局声明宏定义_Rust语言:元编程,强大的宏系统,菜鸟到高手进阶的必经之路...
- C Primer Plus 第6章 C控制语句 6.16 编程练习及答案
- IHttpModule和IHttpHandler 应用笔记
- Theme,skin-----asp.net2.0 new technolog
- 今天终于把ati集成显卡的linux驱动装好了,看我的3D桌面!哈哈!(博客搬家 2007-07-28 15:56)
- UNWAVERING SPIRIT AND VALUES
- 英特尔首推物联网云平台设备管理
- React-引领未来的用户界面开发框架-读书笔记(七)
- android第一天-------环境搭建
- Linux oracle(常用命令)启动、停止、监听
- word里面给公式自动编号
- 自然语言处理从零到入门 成分句法分析
- Vue脚手架安装流程详解
- Elasticsearch汉字补全和拼写纠错
- The server encountered an internal error that prevented it from fulfilling this request的一种解决办法
- 只有浏览器显示找不到服务器dns
- TCP协议的三次握手和四次挥手
- 爱情小筑 v3.1 build 2002.07.26 免费下载
- 高考数学90分能学好计算机,我平时数学考试总考60多分,离高考还有一个月,我希望能通过努力考到90分,诸位有何好的方法...
- 【点云系列】基于图结构的点云快速重采样 翻译
热门文章
- 运用c++结束学校机房红蜘蛛控制软件
- 手机影音第十三天,xutils3、Glide的使用获取网络图片;下拉、上滑刷新;缓存网络资源...
- 51 nod 1405 树的距离之和
- python读取数据库数据,读取出的中文乱码问题
- 鸭子类型duck typing(动态)
- Java并发专题 带返回结果的批量任务执行 CompletionService ExecutorService.invokeAll(转)...
- nginx rtmp HLS直播
- Linux shell脚本中如何读取跟shell脚本同一目录下的配置文件
- 6426C Lab2 部署和配置证书服务
- 大学毕业后5年决定命运(强烈推荐一看)