java - 缺少return语句,但是return语句在那里?
问题描述
我有一个嵌套在 for 循环中的 if/else 循环,这段代码说它缺少一个 return 语句:
public int size()
{
//Count until you find a place in the array that is empty, then return the number
int count = 0;
for (int i = 0; i < theArray.length; i ++)
{
count ++;
if (theArray[i] == 0)
{
return count;
}
else
{
return 0;
}
}
}
但是,如果我像这样移动退货声明:
public int size()
{
//Count until you find a place in the array that is empty, then return the number
int count = 0;
for (int i = 0; i < theArray.length; i ++)
{
count ++;
if (theArray[i] == 0)
{
return count;
}
}
return 0;
}
错误消失了,但它没有给出正确的计数。
解决方案
如果theArray.length
为零,则根本不会执行循环体,也不会执行任何返回语句。
此外,您的逻辑似乎有点奇怪,似乎没有理由使用局部count
变量。首先,您必须决定如果没有空格或数组根本没有空格(长度为 0),该方法应该返回什么。我建议-1
为这两种情况返回。如果目标是返回第一个空格的索引(这也将是第一个空格之前的非空格数的计数),您可以尝试:
public int size(int[] array) {
for (int i = 0; i < array.length; i++) {
if (array[i] == 0) {
return i;
}
}
return -1;
}
推荐阅读
- c# - 如何使用 c# 设置遥测频率以向物联网设备发送消息
- selenium - 一点击就隐藏的浏览器弹出窗口如何处理?
- c++ - clCreateFromGLBuffer 崩溃
- python - 无法使用带有批处理文件的 Windows 命令行运行脚本
- mysql - DECIMAL(M),允许实现来决定 M 的值
- blob - 使用逻辑应用将文件从 SFTP 服务器复制到 Blob 存储
- assembly - CPU 对寄存器的操作如何影响内存?
- python - 如何将一个 shell 脚本中的错误代码捕获到另一个 shell 脚本中
- python - 解压没有文件的泡菜变量?
- javascript - 为什么 JavaScript 中的 tagName 方法以大写字母返回 HTML 标签?