黑马程序员技术交流社区

标题: 大家看看这个到底是哪错了,Eclipse老是报错啊。 [打印本页]

作者: 黄振    时间: 2013-1-10 17:39
标题: 大家看看这个到底是哪错了,Eclipse老是报错啊。
本帖最后由 黄振 于 2013-1-10 18:16 编辑

        public static int getMax(int[] arr)
        {
                int max = arr[0];
                {
               
                for(int x=1; x<arr.length; x++)
                {
                        if(arr[x]>max)
                                max = arr[x];
                }
                return max;

错在int描诉:此行的多个标记
        - 标记“int”上有语法错误,应为 @
        - 语法错误,将“interface Identifier”插入到完整
         InterfaceHeader 中
        - 标记上具有语法错误,错误放置了构造

作者: 肖亚光    时间: 2013-1-10 17:53
本帖最后由 可乐咖啡厅 于 2013-1-10 17:54 编辑

编译的时候就应该出错吧
int max = arr[0];
在这个地方没有错误么???
你没有判断arr.length 就开始获取它的值了
编译的时候有值么
你试着在这里加上一个判断 再运行看看
看这部分代码是这个问题
int max = 0;
if(arr.length>0)
max = arr[0];

作者: 林嘉健    时间: 2013-1-10 18:03
首先int是一个不可空的类型。

int max = arr[0];

这里假如接受到了一个null 就会报错,所以需要加if语句判断一下
还有你的中括号也是错得离谱了吧?
作者: 张森    时间: 2013-1-10 18:09
本帖最后由 张森 于 2013-1-10 18:13 编辑

兄弟 你这说得太笼统了   不知道什么情况  你最好截图发上来  到底是编译异常还是运行异常.
不过根据你上面的代码  好像多了一个括号
public static int getMax(int[] arr)
        {
                int max = arr[0];
                {----------------------------------------------------你此次多了一个括号,但也不应该是你说的那个错误,
               
                for(int x=1; x<arr.length; x++)
                {
                        if(arr[x]>max)
                                max = arr[x];
                }--------------------------------------------------------这里这个括号是中文的,有可能是你手动写在这里的时候 写错了   
                return max;


不管你的数组是空 还是长度是0  报道异常都应是NullPointerException  或者 ArrayIndexOutOfBoundsException
作者: 黄振    时间: 2013-1-10 18:13
嘿嘿,解决了,反正不是你说的那个样子。
作者: 何伟    时间: 2013-1-10 23:41
int  下面那个  {    是怎么回事?




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