Java中从for循环内部返回的正确方法?
所以我有一个小方法,它接受一个整数参数并检查数组(设置为属性)是否包含某个对象。如果返回,则返回该对象,否则返回Java中从for循环内部返回的正确方法?,java,for-loop,Java,For Loop,所以我有一个小方法,它接受一个整数参数并检查数组(设置为属性)是否包含某个对象。如果返回,则返回该对象,否则返回null。这里的问题是,当我试图返回某个内容时,会出现错误。这是: myClass.java:33: error: missing return statement } ^ 1 error 我有一个return语句,它包含了三元运算符,这意味着它会以任何代价返回一些东西。以下是我的方法: public Banesa gjejBanese(int nrB
null
。这里的问题是,当我试图返回某个内容时,会出现错误。这是:
myClass.java:33: error: missing return statement
}
^
1 error
我有一个return语句,它包含了三元运算符,这意味着它会以任何代价返回一些东西。以下是我的方法:
public Banesa gjejBanese(int nrBaneses) {
for (int i = 0; i < listaBanesave.length; i++) {
return (listaBanesave[i].getNrBanesa() == nrBaneses) ? listaBanesave[i] : null;
}
}
公共银行(国际银行){
for(int i=0;i
怎么了?为什么会出现这个错误?您应该在循环外有一个
返回值。因为当listaBanesave
为空时,不会出现return
语句-这会让编译器生气
返回什么是您的决定。。取决于您的逻辑。您应该在循环外有一个返回。因为当listaBanesave
为空时,不会出现return
语句-这会让编译器生气
返回什么是您的决定。。取决于您的逻辑。您应该返回null作为方法的最后一行,即使根据您的规范(“如果返回,它将返回该对象,否则它将返回null)
公共银行(国际银行){
for(int i=0;i
您应该返回null作为方法的最后一行,即使是根据您的规范(“如果返回,则返回该对象,否则返回null)
公共银行(国际银行){
for(int i=0;i
循环中的条件可能不满足,并且可能不会返回
所以你需要有一个默认的返回
public Banesa gjejBanese(int nrBaneses) {
for (int i = 0; i < listaBanesave.length; i++) {
return (listaBanesave[i].getNrBanesa() == nrBaneses) ? listaBanesave[i] : null;
}
return null; //when there is no chance to enter in loop.
}
公共银行(国际银行){
for(int i=0;i
循环中的条件可能不满足,并且可能不会返回
所以你需要有一个默认的返回
public Banesa gjejBanese(int nrBaneses) {
for (int i = 0; i < listaBanesave.length; i++) {
return (listaBanesave[i].getNrBanesa() == nrBaneses) ? listaBanesave[i] : null;
}
return null; //when there is no chance to enter in loop.
}
公共银行(国际银行){
for(int i=0;i
接受整数参数并检查数组(设置为属性)是否包含特定对象。如果是,则返回该对象,否则返回null
根据您的需求,您的代码应该是(例如):
公共银行(国际银行){
班萨·雷特;
for(int i=0;i
使用您当前的代码:
- 如果列表为空,则不会输入“for”循环,因此没有return语句——这就是编译错误李>
- 在任何情况下,您只检查第一个元素,而从不检查其他元素,因为您在每个迭代中
返回
(其中只有一个迭代)
接受整数参数并检查数组(设置为属性)是否包含特定对象。如果是,则返回该对象,否则返回null
根据您的需求,您的代码应该是(例如):
公共银行(国际银行){
班萨·雷特;
for(int i=0;i
使用您当前的代码:
- 如果列表为空,则不会输入“for”循环,因此没有return语句——这就是编译错误李>
- 在任何情况下,您只检查第一个元素,而从不检查其他元素,因为您在每个迭代中
返回
(其中只有一个迭代)
我认为您需要循环查看列表中的所有项目,检查每个项目是否符合标准,如果没有符合标准,则返回null
。当前,如果第一项不符合标准,您的代码将返回null
,即可以将其重写为:
public Banesa gjejBanese(int nrBaneses) {
if(listaBanesave.length == 0)
return null;
return (listaBanesave[0].getNrBanesa() == nrBaneses) ? listaBanesave[0] : null;
}
想必这不是你想要的
public Banesa gjejBanese(int nrBaneses) {
for (int i = 0; i < listaBanesave.length; i++) {
if (listaBanesave[i].getNrBanesa() == nrBaneses) {
return listaBanesave[i];
}
}
return null;
}
公共银行(国际银行){
for(int i=0;i
因此,检查循环中的每个项目;如果匹配,则返回它。否则,一旦循环完成,您就知道没有匹配项了。返回空值
我认为您需要在listaBanesave
中的所有项目上循环,并检查每个项目是否符合标准,如果没有符合标准,则返回空值
。当前,如果第一项不符合标准,您的代码将返回null
,即可以将其重写为:
public Banesa gjejBanese(int nrBaneses) {
if(listaBanesave.length == 0)
return null;
return (listaBanesave[0].getNrBanesa() == nrBaneses) ? listaBanesave[0] : null;
}
想必这不是你想要的
public Banesa gjejBanese(int nrBaneses) {
for (int i = 0; i < listaBanesave.length; i++) {
if (listaBanesave[i].getNrBanesa() == nrBaneses) {
return listaBanesave[i];
}
}
return null;
}
公共银行(国际银行){
for(int i=0;ipublic Banesa gjejBanese(int nrBaneses) {
for (int i = 0; i < listaBanesave.length; i++)
{
if(istaBanesave[i].getNrBanesa() == nrBaneses)
return listaBanesave[i];
}
return null;
}
public Banesa gjejBanese(int nrBaneses) {
Banesa found = null;
for (int i = 0; i < listaBanesave.length; i++) {
if (listaBanesave[i].getNrBanesa() == nrBaneses) { // should this be == or equals()?
found = listaBanesave[i];
break;
}
}
return found;
}