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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

以下程序提示错误:非法表达式开始,指示的是“static void max(){ ”出错了,为什么啊??在线public class FindMax{
  public static void main(String args[]){
    static void max(){  
     if(args.length>=10){
      int sign=0;;
      for(int i=1;i<args.length;i++)
      if(arg[sign]<args[i]){
        sign=i;
      }
     System.out.println("其中最大值是"+args[sign]);
     }
     else{
      System.out.println("不够十个数字,无法进行比较,请重新输入10个数字");
     
     }
    }
    public void print(){
     for(int i=0;i<args.length;i++)
      System.out.print(args[i]+" ");
    }
    System.out.pirntln("这些数字分别是:"+print());
    print();
    max();
     
  }
}

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 赞一个!

查看全部评分

6 个回复

倒序浏览
本帖最后由 王震阳 于 2012-11-20 21:18 编辑

是以为你的方法 定义在了Main()方法中了。其实你的方法应该定义在main()方法之外。还有: public static void main(String args[])这句话也不对吧。
回复 使用道具 举报
本帖最后由 金鑫 于 2012-11-20 21:21 编辑

你的代码应该没贴完,我就自己发现的问题说一下:
static void max(){ }这里出错的原因很简单,因为你这虽然是一个静态函数,但是你把这个静态函数定义在了主函数之内了。函数之内是不能定义函数的,所以他说你非法表达式。
你把自己写的函数放到主函数的外面,然后在主函数内直接调用max()和print()方法应该就可以了

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
  1. public class FindMax
  2. {
  3.          public static void main(String[] args)
  4.         {
  5.                 max(args);
  6.                 print(args);
  7.         }
  8.         public static void max(String[] args)
  9.         {  
  10.                 if(args.length>=10)
  11.                 {
  12.                         int sign=0;;
  13.                         for(int i=1;i<args.length;i++)
  14.                         if(Double.valueOf(args[sign])<Double.valueOf(args[i]))
  15.                                 {
  16.                                         sign=i;
  17.                                 }
  18.                         System.out.println("其中最大值是"+args[sign]);
  19.      }
  20.      else
  21.                  {
  22.                 System.out.println("不够十个数字,无法进行比较,请重新输入10个数字");
  23.                 }
  24.     }
  25.     public static void print(String[] args)
  26.         {
  27.                 for(int i=0;i<args.length;i++)
  28.                 System.out.print(args[i]+" ");
  29.     }
  30. }
复制代码
在尽量尊重你的源代码的基础上,给你改写了一下,已经可以按照你想要的运行了。
希望你继续努力。

这个方法怪怪的.jpg (33.78 KB, 下载次数: 69)

这个方法怪怪的.jpg

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
金鑫 发表于 2012-11-20 21:19
你的代码应该没贴完,我就自己发现的问题说一下:
static void max(){ }这里出错的原因很简单,因为你这虽 ...

楼主可能没有搞明白java的结构。应该建议他看看毕老师的java基础视频部分。不过楼主通过java Findmax 的时候输入参数进行比较最大值的想法还是不错的。不要误会哦,我知道不也不是楼主。
回复 使用道具 举报
还有一点忘说了,String类型的两个数是不可以直接比较大小的。在运行java FindMax的时候输入的参数虽然看似数字其实是以字符串的形式被接受的。因此要想让String可以比较,可以将String类转化为Double.valueOf(String str)的double型。
回复 使用道具 举报
本帖最后由 杜正冬 于 2013-2-2 23:26 编辑

main(String args[]){



应该这样写
public static void main(String [] args){}//String 后面写中括号 java这么要求的
(原来当初的我 很傻很天真 改:2013.2.2)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马