如何获取for循环的最后生成编号?
所以大概10次之后,我想返回这个数字,但是它说: 此方法必须返回float类型的结果。 当我尝试适应它(添加return语句)时,它根本不起作用...
package test;
public class Test2 {
public static void main(String[] args) {
plus();
}
public static float plus() {
float a = 13.6f;
float t = 1;
float c = 0;
for (int i = 0; i < 10; i++) {
c = (a * t + c);
if (i == 9) {
return (float) (c);
}
}
System.out.println(c);
}
}
此方法必须返回float类型的结果。
答案 0 :(得分:1)
这里:
System.out.println(c);
将语句放在之后的事实已经表明,您可以设想,循环不一定总是通过返回整个方法而结束循环体。
编译器也不知道(可以,但是在Java中,编译器非常笨,并且忽略了这些知识)。
因此:您必须确保在所有可用路径上都有一个return语句。
现在,您仅覆盖该for循环中的路径。但是,如果该循环永远不会发生,或者在没有达到回报的情况下结束,该怎么办?
因此:只需在末尾添加退货即可。
理想情况下,您只需返回c
,然后从循环体中删除if + return。您要在上一次循环迭代后返回,因此只需将返回放在之后!
答案 1 :(得分:0)
您不需要在循环中使用if语句,因为它无论如何都会在i == 9处停止。
public static float plus() {
float a = 13.6f;
float t = 1;
float c = 0;
for (int i = 0; i < 10; i++) {
c = (a * t + c);
}
return c;
}
答案 2 :(得分:-1)
尝试下面的代码
import java.lang.System;
import java.lang.*;
public class Test2 {
public static void main(String[] args) {
float result = Test2.plus();
System.out.println(result);
}
public static float plus() {
float a = 13.6f;
float t = 1;
float c = 0;
for (int i = 0; i < 10; i++) {
c = (a * t + c);
if (i == 9) {
return (float) (c);
}
}
return c;
}
}