一个方法如果出现了多个return会出什么问题?

问题描述

以前老师上课的时候说过,在方法设计时尽量少的写return,让出口尽可能的少,但是我一直不太理解,多个出口后会出现什么样的问题,希望高手指点。

解决方案

解决方案二:
该回复于2011-03-28 08:41:54被版主删除
解决方案三:
为什么要让出口尽量少?java是可以用异常做出口的,但是return正常返回也没问题的吧……
解决方案四:
当一个方法中return过多,就得考虑下该方法的设计是否合理了。。出口过多容易导致程序执行上的混乱,而且程序耦合性会提高。。。
解决方案五:
用多个return程序本身不会出现任何问题,但是这样结构不是很好。
解决方案六:
分支过多导致程序逻辑复杂,容易出现错误
解决方案七:
很简单,统一的出口和入口,便于写log呗。
解决方案八:
引用1楼bancxc的回复:

不怎么样

额...什么不怎么样?不清楚哦
解决方案九:
引用2楼shilyj7的回复:

为什么要让出口尽量少?java是可以用异常做出口的,但是return正常返回也没问题的吧……

return不就是一个出口么,我的意思的为什么要少写return?
解决方案十:
引用3楼gray_sky的回复:

当一个方法中return过多,就得考虑下该方法的设计是否合理了。。出口过多容易导致程序执行上的混乱,而且程序耦合性会提高。。。

大侠能具体的来个例子么跪求
解决方案十一:
出口太多出错不好跟踪别人看着也累
解决方案十二:
引用4楼singwhatiwanna的回复:

用多个return程序本身不会出现任何问题,但是这样结构不是很好。

恩我就是想知道为什么不好
解决方案十三:
不管多少个return,程序最终还是从其中一个返回
解决方案十四:
一个方法多个return很正常只要结构清晰例如下面的结构if(){return1;}if(){return2;}if(){return3;}if(){return4;}if(){return5;}if(){return6;}
解决方案十五:
引用13楼qkniit的回复:

一个方法多个return很正常只要结构清晰例如下面的结构if(){return1;}if(){return2;}if(){return3;}if(){return4;}if(){return5;}if(){return6;}

是啊,factory经常就是这么构成的啊。也不存在楼上说的什么逻辑不清晰和log不好出的问题。
解决方案:
3楼说会提高耦合度,是真的么,具体是怎样的,愿闻其详!
解决方案:
return多了没有什么不好的,个人感觉return多了看了又点凌乱的感觉…

时间: 2024-11-04 00:30:57

一个方法如果出现了多个return会出什么问题?的相关文章

一个方法中两个return

问题描述 发现这样一个方法publicStringcreateJson(){try{JSONObjectjsonObject=newJSONObject();jsonObject.put("id","1");jsonObject.put("name","李磊");jsonObject.put("age",30);returnjsonObject.toString();}catch(Exceptione){e

PHP 实现代码复用的一个方法 traits新特性

 这篇文章主要介绍了PHP 实现代码复用的一个方法,traits的新特性的相关资料,需要的朋友可以参考下     在阅读yii2源码的时候接触到了trait,就学习了一下,写下博客记录一下. 自 PHP 5.4.0 起,PHP 实现了代码复用的一个方法,称为 traits. Traits 是一种为类似 PHP 的单继承语言而准备的代码复用机制.Trait 为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立的类中复用方法集.Traits 和类组合的语义是定义了一种方式来减少复杂性,

如果只有一个方法还有必要用委托么?

问题描述 如果只有一个方法还有必要用委托么? 在委托这个地方卡了很久,在网上也看了很多文章,基本上都是说的委托的语法,偶尔有介绍使用场景,但是还是一直没弄明白,总有点迷迷糊糊的,做技术就应该吧问题搞的明明白白,要不然还不如不搞,希望大家给讲解下这个问题.谢谢了比如下面的代码 static Func<int int int> CalculateHandler = (x y) => x + y; static void Main(string[] args) { var result = C

怎么在aspx前台页面执行后台的的一个方法 如果是用ajax 那该怎么使用?

问题描述 怎么在aspx前台页面执行后台的的一个方法 如果是用ajax 那该怎么使用? 怎么在aspx前台页面执行后台的的一个方法 如果是用ajax 那该怎么使用? 控件的话我用的是客户端控件 我需要在前端点一个按钮 简单的执行一下后台方法就行了 前台页面Main.aspx 后台Main.aspx.cs 前台按钮ID=a 解决方案 <input type="button" value="callServer" onclick="callServer(

回调函数-小弟做了一个方法,执行完毕还会再进入方法一次,求指教下原因

问题描述 小弟做了一个方法,执行完毕还会再进入方法一次,求指教下原因 小弟把代码贴到了下面,我要迭代的替换字符串中的内容,替换完毕后,方法执行到 return sb.toString(); 应该是结束了,可是我的代码在运行的时候执行了return sb.toString(); 以后又进来执行一次,分析不出来原因,还请大家赐教,不胜感激: private String parseToCk(String str) { String s1 = str.trim(); /** s1截取字符串开始部分*/

在java中一个方法抛两个异常会怎样

问题描述 在java中一个方法抛两个异常会怎样 在一个java方法中同时用throw和throws抛出异常.会有不良的影响么.会不会有一个一个异常抛不出去的情况发生啊?求大神帮帮忙 解决方案 他俩用的地方不一样,throws是写在方法后面,其他地方调用时,要捕获,throw是在方法内直接抛出,可以一起用throw触发了,估计就到不了throws的捕获了,看你具体怎样用的 解决方案二: 方法声明时可以抛出异常,但是并不代表调用这个方法时会发生异常. 测试要构造异常条件才能走入异常分支的啊.例如:

选择-如何在一个方法内返回UTF-8格式的字符串,在另一个方法中调用输出?

问题描述 如何在一个方法内返回UTF-8格式的字符串,在另一个方法中调用输出? package com.secutiry.rsa;import java.util.Scanner;public class Prtest { public String Phintx(){ Scanner cc =new Scanner(System.in); //下马这行会报错,选择try catch 或者 throw declaration //选择try catch 则无法return 选择throw dec

如何新建一个方法,通过它可以产生一个javaBean

问题描述 我想达到的目的是这样子的,通过用户提供的类名称,和类属性以及对应的属性类型,可以通过一个方法自动生成一个javaBean,并有对应得set get 方法.请问我该怎么做.是不是要要对Object进行扩展? 问题补充:我的想法是通过定义个方法比如public static Object createObject(String Student,String name,int age,String address){ class ObjectName{publicString name;pu

android如何在另一个方法里面调用ExpandableListView的监听方法

问题描述 android如何在另一个方法里面调用ExpandableListView的监听方法 我想在别的地方(比如button的click监听方法里面) 来控制listView的一级子菜单的收缩和展开,一级二级子菜单的选定. 新人报道 ,求大神... 解决方案 这是动态监听expandableListView的高度,你可以参考下. 在button的click中监听,可以吧ListView的点击事件提出来写,在button的click中调用 setListViewHeightBasedOnChi