为什么此代码出现 "unreachable statement" 错误?

Why this code got "unreachable statement" error?

我有以下方法:

  char getChar(int I)
  {
    if (I<65+26) return (char)(I);

    switch (I)
    {
      case 91 : return '?';break;
      case 92 : return '#';break;
      default : return ' ';
    }
  }

为什么会出现 "unreachable statement" 错误?

因为你不能在 return 完成后 breakreturn 表示 "exit the method"。 break 表示 "exit the block".

所以如果你有:

return '?'; break;

那么 break 永远无法到达。

您可能不需要 return 之后的 break 语句,因为控制已经通过 return 离开了结构(甚至整个方法):

switch (I)
{
  case 91 : return '?';
  case 92 : return '#';
  default : return ' ';
}

return 之后的任何内容将永远无法到达。