Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在返回方法中返回循环内的值?_Java_Loops_Methods_Return_Return Value - Fatal编程技术网

Java 如何在返回方法中返回循环内的值?

Java 如何在返回方法中返回循环内的值?,java,loops,methods,return,return-value,Java,Loops,Methods,Return,Return Value,我无法从方法中的循环返回值 我尝试过这种方法:(它返回classname,我的初始化字符串而不是classes.get(I).classname) 请告诉我如何返回classes.get(i).className!!非常感谢:P我不知道您想做什么,但您的代码相当于: public String getClassName() { return classes.get(classes.size() - 1).className; } 你确定这是你想要的吗?如果类可能是空的,您应该小心。我不

我无法从方法中的循环返回值

我尝试过这种方法:(它返回
classname
,我的初始化字符串而不是
classes.get(I).classname


请告诉我如何返回
classes.get(i).className
!!非常感谢:P

我不知道您想做什么,但您的代码相当于:

public String getClassName() {
    return classes.get(classes.size() - 1).className;
}

你确定这是你想要的吗?如果
可能是空的,您应该小心。

我不知道您想做什么,但您的代码相当于:

public String getClassName() {
    return classes.get(classes.size() - 1).className;
}

你确定这是你想要的吗?如果
可能是空的,您应该小心。

虽然Maroun关于代码只返回类集合中的最后一个值的说法是正确的,但在您的示例中,集合总是空的,因此for循环甚至不会执行一次。确保classes集合包含您认为应该包含的内容

虽然Maroun关于只返回类集合中最后一个值的代码是正确的,但在您的示例中,集合总是空的,因此for循环甚至不会执行一次。确保classes集合包含您认为应该包含的内容

这应该是因为您没有进入for循环,主要是因为您列出的“类”是空的。 你可以这样检查-

if(classes.size()==0)
   System.out.println("Classes is empty");

这应该是因为你没有进入for循环,主要是因为你列出的“类”是空的。 你可以这样检查-

if(classes.size()==0)
   System.out.println("Classes is empty");

类中没有存储任何内容。确保你有你认为你在做的事情。尝试将其放入for循环中以查看发生了什么:

System.out.print("class name = " + cName);
如果从未打印出来,您就知道类是空的。在for循环中的任何时候,您都可以调用return,例如,如果类名与您可以在if语句中测试的内容相匹配

for (int i=0; i<classes.size(); i++){
    cName = classes.get(i).className;
    return cName;
}

for(int i=0;i类中没有存储任何内容。请确保在其中包含您认为可以执行的操作。尝试将其放入for循环中以查看发生了什么:

System.out.print("class name = " + cName);
如果从未打印出来,您就知道类是空的。在for循环中的任何时候,您都可以调用return,例如,如果类名与您可以在If语句中测试的内容匹配

for (int i=0; i<classes.size(); i++){
    cName = classes.get(i).className;
    return cName;
}


用于(int i=0;iBased on您需要返回什么值?!因为在您的情况下,将返回类列表中的最后一个值。这是否意味着我的代码没有问题,但实际上ArrayList中没有存储任何内容,因此它将返回初始化的值?是和否。从语法上讲,您的代码是正确的,如果列表中有数据,yo你会得到一个不同的输出(不是默认设置的
className
),但从逻辑上讲,它不会总是返回列表中的最后一个元素,我真的怀疑你是否想要,因为如果是这样,
返回classes.get(classes.size()-1).className;
应该足够了。您甚至不需要遍历列表。@R.J谢谢。但是如果
ArrayList类
最初有0项,恐怕使用
会返回classes.get(classes.size()-1).className
将获得
java.lang.ArrayIndexOutOfBoundsException:-1
错误在返回之前,您可以对此进行空/空检查。就这么简单。此外,由于它是一个列表,因此您将获得。基于您需要返回值的内容?!因为在您的情况下,将返回类列表中的最后一个值。我是否这并不意味着我的代码没有问题,但实际上ArrayList中没有存储任何内容,因此它返回初始化的值?是和否。从语法上讲,您的代码是正确的,如果列表中有数据,您将得到不同的输出(而不是默认设置的
className
).但从逻辑上讲,它并不总是返回列表中的最后一个元素,我真的怀疑您是否需要它,因为如果是这样,
返回classes.get(classes.size()-1).className;
应该足够了。您甚至不需要遍历列表。@R.J谢谢。但是如果
ArrayList类
最初有0项,恐怕使用
会返回classes.get(classes.size()-1).className
将获得
java.lang.ArrayIndexOutOfBoundsException:-1
错误在返回之前,您可以对此进行空/空检查。就这么简单。此外,由于它是一个列表,您将获得。谢谢!我刚刚尝试过,我得到了此错误:
java.lang.ArrayIndexOutOfBoundsException:-1
表示您的类对象为空。@Sue,因为
为空。这是因为您的
为空。谢谢。我的程序的其他部分似乎有问题:(谢谢!我刚刚试用过,但发现了以下错误:
java.lang.ArrayIndexOutOfBoundsException:-1
表示您的类对象为空。@Sue因为
classes
为空。这是因为您的
classes
为空。谢谢。我的程序的其他部分似乎有问题:(我明白了!那么这是否意味着
类中实际上没有存储任何内容呢?
?是的……这就是我所说的,也是我的意思(现在这个评论足够长了)我明白了!那么这是否意味着
类中实际上没有存储任何内容呢?是的……这就是我所说的,也是我的意思(现在这个评论足够长了)