我的代码:
import javafx.event.ActionEvent;
import javafx.scene.control.Label;
import java.util.Arrays;
import java.util.Random;
public class Controller {
public Label keno;
public Label loto;
public Random rd = new Random();
public void click(ActionEvent actionEvent) {
String pom = "";
int[] ken = zrebuj(10, 80);
pom = Arrays.toString(ken);
pom = pom.substring(1, pom.length() - 1);
keno.setText(pom);
ken = zrebuj(5, 35);
pom = Arrays.toString(ken);
pom = pom.substring(1, pom.length() - 1);
loto.setText(pom);
}
private int[] zrebuj(int pocet, int max) {
int[] cisla = new int[pocet];
for (int i = 0; i < cisla.length; i++) {
int tah = rd.nextInt(max) + 1;
if (jeTam(cisla, tah)==false) {
cisla[i] = tah;
}
else i--;
}
Arrays.sort(cisla);
return cisla;
}
private boolean jeTam(int[] cisla, int tah) {
for (int i = 0; i < cisla.length; i++) {
if (cisla[i] == tah) {
return true;
}
else return false;
}
}
}
我的问题是,当我启动程序时,它崩溃并显示:私有布尔值中的“ Missing return statement”,甚至认为它在if语句中。
请问你能帮帮我吗?谢谢!
*此外,如果您有任何改善建议,请在留言中告诉我;)
问题来源:Stack Overflow
您看到的错误是有效的,因为:
private boolean jeTam(int[] cisla, int tah) {
for (int i = 0; i < cisla.length; i++) {
if (cisla[i] == tah) {
return true;
}
else return false;
}
// <---- NO RETURN STATEMENT
}
for循环结束时,您尚未提供返回值。意思是,您的for循环运行,并且在第一次运行时会返回false或true(根据您的逻辑)。
但是编译器查看您的代码,发现该方法末尾缺少一个return语句。
private boolean jeTam(int[] cisla, int tah) {
for (int i = 0; i < cisla.length; i++) {
if (cisla[i] == tah) {
return true;
}
else return false;
}
return false //For Example
}
回答来源:Stack Overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。