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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 黄振 于 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 中
        - 标记上具有语法错误,错误放置了构造

评分

参与人数 1技术分 +1 收起 理由
邓艳秋 + 1

查看全部评分

5 个回复

倒序浏览
本帖最后由 可乐咖啡厅 于 2013-1-10 17:54 编辑

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

评分

参与人数 1技术分 +1 收起 理由
邓艳秋 + 1

查看全部评分

回复 使用道具 举报
首先int是一个不可空的类型。

int max = arr[0];

这里假如接受到了一个null 就会报错,所以需要加if语句判断一下
还有你的中括号也是错得离谱了吧?

评分

参与人数 1技术分 +1 收起 理由
邓艳秋 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 张森 于 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

评分

参与人数 1技术分 +1 收起 理由
邓艳秋 + 1

查看全部评分

回复 使用道具 举报
嘿嘿,解决了,反正不是你说的那个样子。
回复 使用道具 举报
int  下面那个  {    是怎么回事?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马