A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Adjin 中级黑马   /  2014-7-4 11:06  /  1337 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public static void trans(int num,int base, int offset)
        {
                if(num==0);
                {
                System.out.println(0);
                return ;
                }               
                char[] chs={'0','1','2','3','4','5','6','7','8',
                                        '9','A','B','C','D','E','F'};
               编译的时候,会显示  错误:无法访问的语句,
               char[] chs={'0','1','2','3','4','5','6','7','8',
                                        '9','A','B','C','D','E','F'};
我觉得是return了,不再往下执行了,那怎么会编译报错?

8 个回复

倒序浏览
if(num==0);   楼主把后面的“;”去掉就可以了
回复 使用道具 举报
郭可 来自手机 中级黑马 2014-7-4 11:45:16
藤椅
if语句你怎么还加;   最大的问题是if内部有return语录    一旦return执行了 方法结束了 后面的当然不能执行。
回复 使用道具 举报
就是因为你有代码写在了return后面,才会显示unreachable code,最后再return就好了
回复 使用道具 举报
符号问题
回复 使用道具 举报
if(num==0);这里应该把;去掉,原因见代码注释:
  1. public static void trans(int num,int base, int offset)
  2.     {
  3.             if(num==0);//这里直接分号结束表示如果num==0的话什么都不做(因为没有告诉程序要做什么就直接分号结束了),
  4.             //所以下面的程序跟这个if条件已经没有任何关系了
  5.             //那么下面这个语句块必然会执行
  6.             {
  7.                     System.out.println(0);
  8.                     return ;//这句话也必然会执行,所以程序运转到这一步必然会退出此方法,不在进行下面的代码了,所以编译器
  9.                     //认为下面的任何代码都是多余的(都不可能被执行的)所以会有编译错误--无法访问的代码
  10.             }               
  11.             char[] chs={'0','1','2','3','4','5','6','7','8',};
  12.       
  13.     }
复制代码
回复 使用道具 举报
楼上已为你解答
回复 使用道具 举报
加分号就和后面无关系了
回复 使用道具 举报
多了个分号                             
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马