当前位置: 首页 > 知识库问答 >
问题:

返回布尔值的方法

东方和惬
2023-03-14

好的,我的问题是关于布尔返回。对于我的Comp-Sci作业,我必须使用多种方法制作一个课程注册程序,其中之一就是添加课程方法。基本上,在目录中搜索类,如果匹配,则将其添加到学生计划中,并返回布尔值true。我这么做了,但出于某种原因,这给了我一个错误。以下是代码:

public static boolean addCourse(
    Course[] catalog,
    Course[] mySchedule,
    int myNumCourses,
    int dept,
    int courseNum)
{
    int j;
    int i;
    int k;
    int deptCat;
    int courseNumCat;
    Course courseAdd = null;
    char checkDay;
    int checkTime;



    if (mySchedule.length == myNumCourses) {
        return false;
    }
        for (i = 0 ; i < catalog.length ; i++) {
            Course course = catalog[i];
            deptCat = course.getDepartment();
            courseNumCat = course.getCourseNumber();
            if (deptCat == dept && courseNumCat == courseNum) {
                courseAdd = catalog[i];
                break;
            }
            else continue; }
        for (j = 0 ; j < myNumCourses ; j++) {
            if (mySchedule[j] == null) {
                mySchedule[j] = courseAdd;
                return true;
                }
                else continue;
                }

    for (k = 0 ; k < mySchedule.length ; k++) {
        Course course = mySchedule[k];
        if (course != null) {
            checkDay = course.getDay();
            checkTime = course.getPeriod();
            if (checkDay == courseAdd.getDay() && checkTime == courseAdd.getPeriod()) {
                return false;
            }
        }
        else continue;

    }







}

为什么它不能识别布尔返回值?是因为我把它们放在了一个圈里吗?

共有3个答案

慎懿轩
2023-03-14

必须在所有代码路径中显式返回布尔值(true/false)。因为函数的返回类型是“boolean”。

在您的情况下,必须在最后一个循环之后添加一个return语句。

如果不想写入多个“return xx”语句,可以将此函数的返回类型更改为“void”。在错误的情况下抛出异常

郤浩慨
2023-03-14

将返回值放在循环中没有错,但是,编译器无法保证此方法将返回值,从而引发错误。在方法的最后,您需要返回true或false,以最合适的为准。所有的返回都在条件内,因此可能无法执行,使函数没有返回语句。

凌联
2023-03-14

您需要在方法的末尾放置一个返回-语句,即使您可能知道它永远不会被到达(编译器不够聪明,无法知道这一点,这解释了错误)。

例如,即使这样也无法编译:

public static boolean foo() {
    if (true)
        return true;
}

除非我们添加最后的返回语句。你所拥有的是类似的。

 类似资料:
  • 是否可以编写如下JPQL查询: <代码>选择计数(*) 这将根据实体填充条件是否存在返回真/假布尔值? 我想这样使用查询: 我示例中的查询在语法上不正确(解析错误),但是是否有任何正确的方法可以像在JPQL中那样进行检查,从而返回布尔值,或者只有在Java代码中才有可能?

  • 这是一个布尔方法,是我作业的一小部分。我想根据输入和记录之间是否匹配来返回true或false。我想我遇到了语法问题。 这是该方法的代码,但始终有红线指示我应该在代码中添加return,否则将该方法更改为void。但我已经在if语句中添加了return true。

  • 问题内容: 关于以下原因为何的任何想法。 当我将request_url粘贴到浏览器中时,我会获取json数据,但是如果我在php中尝试,则var_dump就是bool(false); 有任何想法吗?? 更新并修复 OK伙计们,感谢您的所有帮助。是的,我帮助我追踪了这一情况。事实证明,php.ini配置为禁止打开url,因此file_get_contents无法正常工作。我在各个站点上发现了以下方便

  • 我尝试使用Mockito使用JUnit测试测试以下方法: } 然而,我在以下部分遇到了问题: 尽管我已经嘲笑了这个.petRepository.findById(id),但由于某种原因,isPresent()返回了false。这是我对测试的初始化: 因此,以下测试失败,即使它应该通过: 为了解决这个问题,我尝试模仿isPresent()方法: 但是我得到了下面的异常: org.mockito.ex

  • 我编写了以下代码来模拟一个名为ValidatorUtil的类,该类在测试中用于验证字符串,所以我编写了ValidatorUtil应该总是返回true,但它总是返回false,最终实际上调用了ValidatorUtil的isValid方法,该方法将结果返回为false。我已经尝试过所有的匹配器,比如mockito.any()和mockito.any(configurator.class)但是没有成功

  • 好的,这是我的第一篇帖子。首先,我一直试图自己解决这个问题,但已经过了几个小时了,我还是迷路了。我试着在网上搜索,但没有找到足够具体的答案。以下是本项目的要求: 这是我到目前为止所拥有的: 现在,我试着改变各种事情。比如使用firstLastCheck(nameofArrayVariable)。通常它需要一个标识符,但如果我让它工作,它就不能将数组int作为布尔值返回。我还感到困惑的是,没有指令首