开发者社区> 问答> 正文

私有布尔无法识别“ if语句”中的返回

我的代码:


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

展开
收起
montos 2020-03-26 15:53:52 355 0
1 条回答
写回答
取消 提交回答
  • 您看到的错误是有效的,因为:

    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

    2020-03-26 15:54:18
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载