0

I have the following method :

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

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

Why does it get "unreachable statement" error ?

Maroun
  • 94,125
  • 30
  • 188
  • 241
Frank
  • 30,590
  • 58
  • 161
  • 244

2 Answers2

5

Because you can't break after you have already returned. return means "exit the method". break means "exit the block".

So if you have:

return '?'; break;

then the break can never be reached.

khelwood
  • 55,782
  • 14
  • 81
  • 108
2

You probably don't need a break statement after a return, since control has already left the structure (even the entire method) by way of the return:

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

Anything after a return would never be reached.

David
  • 208,112
  • 36
  • 198
  • 279