黑马程序员技术交流社区

标题: 新手求问,谁帮忙看看这个怎么运行不了 [打印本页]

作者: Adjin    时间: 2014-7-4 11:06
标题: 新手求问,谁帮忙看看这个怎么运行不了
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了,不再往下执行了,那怎么会编译报错?

作者: 燿陚√揚葳    时间: 2014-7-4 11:38
if(num==0);   楼主把后面的“;”去掉就可以了
作者: 郭可    时间: 2014-7-4 11:45
if语句你怎么还加;   最大的问题是if内部有return语录    一旦return执行了 方法结束了 后面的当然不能执行。
作者: 回音    时间: 2014-7-4 12:34
就是因为你有代码写在了return后面,才会显示unreachable code,最后再return就好了
作者: 青程    时间: 2014-7-4 13:11
符号问题
作者: EarlyHeart    时间: 2014-7-4 13:38
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.     }
复制代码

作者: 790324255a    时间: 2014-7-4 14:18
楼上已为你解答
作者: 多此一举    时间: 2014-7-4 14:25
加分号就和后面无关系了
作者: 小艾~    时间: 2014-7-4 14:29
多了个分号                             




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2