错误“此方法必须返回 int 类型的结果”?

2024-01-06

我下面有这段代码,它不断告诉我Thanksgiving() 必须返回int 类型的结果。我已经投射了所有结果只是为了确定,但似乎没有任何效果!为什么我会收到此错误?

public class Thanksgiving
{
private static final int YEAR = 2000;  // first valid year for this method
private static final int NOV1 = 3;     // 2000/11/01 falls on a Wednesday
private static final int THURS = 4; // (Sun = 0, Mon = 1, ..., Sat = 6)

// Precondition: year > 1999
public static int thanksgiving(int year)
{
  int day = firstOfMonth( year );
  if ( day == THURS ) 
  {
    return (int) 22;
  }
  if ( day > THURS )
  {
    return (int) 29 - ( day - THURS );
  }
  if ( day < THURS )
  {
    return (int) 22 + ( THURS + day );
  }
}
public static int firstOfMonth(int year)
{
  int raw = year - 2000;
  int day = NOV1;
  for(int i = 0; i < raw; i++ )
  {
    if( i % 4 == 0 )
    {
      day = day + 2;
    }
    else
    {
      day++;
    }
  }
  return day % 7;
}

public static void main(String[] args)
{

    for(int year = 2000; year <= 2100; year++)
    {
        System.out.print("T'giving " + year + " is Nov " + thanksgiving(year) + "; ");
        if (year % 3 == 1)
        {
            System.out.println();
        }
    }
}

}


在此代码中:

public static int thanksgiving(int year)
{
  int day = firstOfMonth( year );
  if ( day == THURS ) 
  {
    return (int) 22;
  }
  if ( day > THURS )
  {
    return (int) 29 - ( day - THURS );
  }
  if ( day < THURS )
  {
    return (int) 22 + ( THURS + day );
  }
}

您在几个 if 块中编写 return 语句。如果它们都不是真的怎么办?编译器不允许这样做,您应该在底部返回默认值或抛出异常。或者做一些 if 语句 else - if 加上最后一个 else:

public static int thanksgiving(int year){
  int day = firstOfMonth( year );
  if ( day == THURS ) {
    return (22;
  } else if ( day > THURS ) {
    return 29 - ( day - THURS );
  } else { // else without the if
    // we know that ( day < THURS )
    return 22 + ( THURS + day );
  }
}

Also:

  • 无需将 int 转换为 int。
  • 一个不相关的问题是您的代码使用了大量“魔术”数字,您将希望避免使用它们。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

错误“此方法必须返回 int 类型的结果”? 的相关文章

随机推荐

  • 如何使用swing类Java绘制网格并在单击和拖动时检测鼠标位置

    我正在尝试使用 Swing 类创建一个网格 UI 5 5 我尝试了嵌套循环并将 jPanel 动态添加到 jFrame 中 我还尝试在用户单击并放在每个 jPanel 上时更改其背景颜色 但在我的代码中 每个单元格之间存在巨大的间隙 我无法
  • 展平递归列表

    显然有很多关于这个主题的问题 但我看不到提出的任何通用解决方案 我有一个深度递归列表 并希望将其展平为包含所有非列表项的单个列表 例如 采用这个嵌套列表 d list list list iris sample 1 150 3 iris s
  • 输入重定向到 Java - 无法找到或加载主类

    我尝试了每个在线解决方案 但仍然得到相同的结果 我试图让我的代码在文件 distinct txt 上运行 这是我运行它的尝试 我尝试了不同的路径 但都给出了相同的结果 这是我的代码 package pset2 sol import edu
  • 将 Angular 4.x 迁移到 Angular 5 [重复]

    这个问题在这里已经有答案了 我已阅读以下博客和文档 角度博客 https blog angular io version 5 0 0 of angular now available 37e414935ced 鳄鱼 IO 文档 https
  • 如何在 Mac OSX clang 上获得对 thread_local 的支持?

    如图所示这个答案 https stackoverflow com a 23850891 115751 Mac OSX 上的 Xcode 中的 clang 不支持thread local即使设置了 C 11 标志也可以存储 即使在最新版本上
  • 为什么我的调试器有时会崩溃并做出与我的代码不一致之类的事情?

    当我在我的 C 代码上使用调试器时 在我的特定情况下 是 QT Creator 和 GDB 一起激发了这个灵感 有时甚至在调用之后make clean其次是make调试器似乎吓坏了 有时它似乎与另一段代码的行号对齐 并且会跳来跳去 有时这会
  • string::find 的 C++ 正则表达式等效项

    我正在尝试编辑一个开源 C 程序来进行简单的调整 以便输入之一接受正则表达式字符串而不是字符串 我是一个完全的 C 菜鸟 从未写过任何东西 所以我希望有人能给我指出一个可以工作的函数 采取以下代码 include
  • 每次请求时都会调用tornado.web.RequestHandler中的初始化/

    有一个initialize中的方法tornado web RequestHandler类 每次有请求时都会调用吗 是的 龙卷风在召唤initialize对于每个请求 如果您想在请求之间共享状态 例如数据库连接 将其存储在self appli
  • NHibernate 属性公式过滤器

    我有以下课程 MyClass public virtual int Id get set public virtual int Code get set public virtual int Description get set publ
  • 如何将文件下载到本地下载文件夹?

    我使用 WebView 启用了文件的下载设置 我正在使用 DownloadManager 保存文件 但这些文件不会出现在本地下载目录中 我下载的文件保存在这里 gt file storage emulated 0 Android data
  • 带有 NULL 的指针算术

    有人可以解释一下为什么 int main void char a NULL int b NULL double c NULL printf n d d d n d d d n n int a 1 int b 1 int c 1 int a
  • Windows 在哪里存储 ACL,ACL 是否跟随文件从一台计算机传输到另一台计算机?

    我们的应用程序使用的组件需要在可执行文件的目录中包含许可证文件 该文件恰好是 NET WinForms 应用程序 尽管我认为这对这个问题并不重要 当安装在某些 XP Pro 计算机上时 迄今为止仅数百台计算机中的三台 该组件会引发许可证异常
  • 去掉itextsharp中的左右侧边框,想要一个矩形框

    Remove the left and right side borders of Approved By and sign and also i need to draw a small rectangular box after cal
  • 无法打开自定义文件扩展名

    我有一个我希望支持的文件格式 它只是一个 zip 但我已将其重命名为 amg 以便我的应用程序可以读取它 在我的带有姜饼的三星手机上 它工作正常并且可以打开 在我的带有 Kitkat 的摩托罗拉手机上 我得到的只是无法打开它 我尝试过这里找
  • 使用 Lua I/O 函数创建新文件

    我开始学习io 函数 并尝试在我的代码中实现它们 我一直在寻找这个问题的答案 但似乎没有任何明确的答案是或否 或者至少我没有看到 我希望这里有人能知道答案并能够提供帮助 我想创建一个可以随着时间的推移写入的文本文件 它基本上是一个日志 我将
  • 为什么要禁用 IpV6 Hadoop 安装

    我已经在 Ubuntu 系统上成功安装并运行 Hadoop 我正在关注一些文章的教程 我很困惑为什么每一步都建议禁用 ipv6 如果我不在系统上禁用 ipv6 会有影响吗 有谁能回答一下吗 就像声明的那样here http wiki apa
  • CKEditor:在粘贴上应用removeFormat

    我已经成功地设置了一个粘贴事件来捕获粘贴到文本区域的 HTML 我需要在将 HTML 粘贴到文本区域之前或之时自动将removeFormat 命令应用于该 HTML 以便我可以去除其中的类 各种标签和其他属性 有人可以指出我正确的方向来正确
  • VBA“ThisWorkbook.Close”不关闭此工作簿!

    我正在 Excel 中编写一个 VBA 宏 该宏应该打开 fileB xls 然后在打开后立即关闭 由于我们将讨论 3 个 Excel 文件 因此我将第一个文件命名为 fileA 文件 A 用户窗体上按钮的代码如下所示 Private Su
  • 一个应用程序中哪一个应该是单例? MongoClient 还是 MongoDatabase 还是 MongoCollection?

    正如文档中提到的 http mongodb github io mongo java driver 3 3 driver getting started quick tour http mongodb github io mongo jav
  • 错误“此方法必须返回 int 类型的结果”?

    我下面有这段代码 它不断告诉我Thanksgiving 必须返回int 类型的结果 我已经投射了所有结果只是为了确定 但似乎没有任何效果 为什么我会收到此错误 public class Thanksgiving private static