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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘一阳 中级黑马   /  2014-6-14 17:50  /  1412 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class demop
        {
       
                         public static void maopao(int[] a)
                         {
                         for(int x=0;x<a.length-1;x++)
                                 {
                                 for(int y=0;y<a.length-x-1;y++)
                                         {
                                         if(a[y]>a[y+1])
                                                int temp=a[y];
                                                a[y]=a[y+1];
                                                a[y+1]=temp;         
                                         }
                                 }
                         }
       
               
                         public static void print(int[] a)
                         {
                                 for(int x=0;x<a.length;x++)
                                 {
                                         if(x!=a.length-1)
                                                 System.out.print(a[x]+",");
                                                 else
                                                 System.out.print(a[x]);
                                 }
                         }
                         public static void main(String[] args)
                         {
                                 maopao(a);
                                 print(a);
                         }
               
        }
hanshu.java:279: 错误: 需要 '.class'
                                                int temp=a[y];
                                                    ^
hanshu.java:279: 错误: 不是语句
                                                int temp=a[y];
                                                ^
hanshu.java:279: 错误: 非法的表达式开始
                                                int temp=a[y];
                                                        ^
hanshu.java:279: 错误: 需要']'
                                                int temp=a[y];
                                                           ^
hanshu.java:279: 错误: 非法的表达式开始
                                                int temp=a[y];
哪错了 烦死了

6 个回复

倒序浏览
class Test6
        {
                        public static void maopao(int[] a)
                         {
                         for(int x=0;x<a.length-1;x++)
                                         {
                                         for(int y=0;y<a.length-x-1;y++)
                                                         {
                                                                 if(a[y]>a[y+1]) //if后面有3个执行语句,需要用{}括起来
                                                                 {
                                                                                int temp = a[y];
                                                                                a[y]=a[y+1];
                                                                                a[y+1]=temp;  
                                                                 }                                                                               
                                                         }
                                         }
                         }
                         public static void print(int[] a)
                         {
                                         for(int x=0;x<a.length;x++)
                                         {
                                                         if(x!=a.length-1)
                                                                         System.out.print(a[x]+",");
                                                                         else
                                                                         System.out.print(a[x]);
                                         }
                         }
                         public static void main(String[] args)
                         {                       
                                         int [] a ={1,3,5,78,34,90};//没有定义数组,
                                         maopao(a);
                                         print(a);
                         }               
        }

另:查问题时一般从报错的第一行开始查,先看格式问题,在看代码问题
回复 使用道具 举报
if语句如果不写大"{}",只会执行符合条件的if后面的一条语句,你的代码 只有这一int temp = a[y];a[y]=a[y+1];a[y+1]=temp;  是一个整体的,所以要括起来,楼主的冒泡排序既然没有定义要排序的数组.
                                                                                
                                                                                
回复 使用道具 举报
本帖最后由 zimi626 于 2014-6-14 22:09 编辑

建议你回头看看什么时候需要定义变量,函数怎么定义以及复习冒泡算法。
回复 使用道具 举报
错误1:if 后面的3条语句没有用{ } 括起来。
这样就等于if 的判断只对后面一条语句有效,结果就是if 返回false的时候,temp 没有被定义, 后面两天语句就报错了

错误2:没有定义数组a[]。
回复 使用道具 举报
  请楼主按照下面代码修改。这个是if的基本语法。估计楼主粗心了。如果这不知道。请翻书。或者看视频
                              for(int y=0;y<a.length-x-1;y++)
                                          {
                                          if(a[y]>a[y+1])
                                           {
                                                 int temp=a[y];
                                                 a[y]=a[y+1];
                                                 a[y+1]=temp;     
                                             }
                                          }
回复 使用道具 举报
楼上讲的都不错,就是LZ 你长点心吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马