出栈栈空时的if-else必须有返回值的解决办法
2017-02-24 00:00
239 查看
今天在写栈的操作的时候,在出栈方法哪里有一个问题。就是当栈空时的处理,因为栈空你没有数据可以返回,但是此方法的是有返回值的所以if里即使判断栈空也需要返回数据。
1、程序简单要求不高的时候用System.exit(1);就可以来解决此问题。
如果只是一个简单的栈的操作演示这样没有问题,但是当这只是一个程序的一部分时就会遇到下面的问题。看下面的System.out.println(“test”);就会因为程序的结束无法执行到。
2、另外一种解决办法
把pop方法改成返回Integer类型,没值的话返回null。然后你要输出之前判断是不是null,不是在输出
这样不用System.exit(1);也解决了
感谢学长的帮助
1、程序简单要求不高的时候用System.exit(1);就可以来解决此问题。
public int pop() { if (isEmpty()) { System.out.println("栈为空"); System.exit(1);// 栈为空时结束程序 // 因为此方法的返回值为int(有返回值)所以if里即使判断栈空也需要返回数据System.exit(1);就是用来解决这个问题的 } return (array[top--]); }
如果只是一个简单的栈的操作演示这样没有问题,但是当这只是一个程序的一部分时就会遇到下面的问题。看下面的System.out.println(“test”);就会因为程序的结束无法执行到。
public static void main(String[] args) { ArrayStack stack = new ArrayStack(); for (int i = 0; i <stack.size+1; i++) {//stack.size就是栈的最大长度,加1之后就到栈空了,无法继续输出。 System.out.println(stack.pop()); } System.out.println("test");// 测试System.exit(1);方法。如果System.exit(1);执行的话会直接结束程序,下面的代码无法运行。 }
2、另外一种解决办法
把pop方法改成返回Integer类型,没值的话返回null。然后你要输出之前判断是不是null,不是在输出
这样不用System.exit(1);也解决了
感谢学长的帮助
相关文章推荐
- 出栈栈空时的if-else必须有返回值的解决办法
- 没有匹配 if 的非法 else 问题解决办法
- jstl 的<c:if>标签没有else的解决办法
- jstl 的<c:if>标签没有else的解决办法
- JSTL 的<c:if>标签没有else的解决办法
- svn报错cleanup failed–previous operation has not finished; run cleanup if it was interrupted的解决办法
- VisualSVN Server提交前必须写日志和修改以往日志出错解决办法
- MyEclipse6.5.0 编写代码时如何显示提示以及Syntax error,annotations are only available if source level is 5.0的解决办法
- 错误"操作必须使用一个可更新的查询"原因及解决办法
- 在IE中必须点击input file 控件的浏览按钮才能提交上传,否则没有权限 。js文件报拒绝访问,解决办法是将input file控件定位到你要点击的地方 ,并且input file做成透明的
- 关于 Android SDK r20.0.1 更新后,Hierarchical Parent 必须填写的解决办法
- CString.GetLength返回值为0解决办法
- IE8 new Date(yyyy-MM-dd hh:mm:ss) 返回值为空解决办法
- 关于 Android SDK r20.0.1 更新后,Hierarchical Parent 必须填写的解决办法
- 【SQL 问题】还原数据库提示“介质集有2个介质簇,但只提供了1个。必须提供所有成员”的解决办法
- SQL2000安装过程中出现“以前进行的程序创建了挂起的文件操作,运行安装程序前,必须重新启动”的解决办法
- “操作必须使用一个可更新的查询”的解决办法(转自:http://jingyan.baidu.com/article/d5a880eb46345613f147cc16.html)
- 关于AutoCompleteTextView 为什么必须输入两个字符才能出现补全提示的问题的解决办法
- windows 子系统 linux (WLS): ifconfig ping等无法使用解决办法
- "必须输入正文"BUG的解决办法!