为了账号安全,请及时绑定邮箱和手机立即绑定

java代码小疑问

java代码小疑问

左右手年华 2016-10-09 10:48:48
public class HelloWorld {        //完成 main 方法    public static void main(String[] args) {        int [] scores={89,-23,64,91,119,52,73};        HelloWorld hello=new HelloWorld();        hello.sco(scores);            }        //定义方法完成成绩排序并输出前三名的功能        public void sco(int scores[]){        int score,i,j;        for(i=0;i<scores.length-1;i++){            for(j=i;j<scores.length;j++){                if(scores[j]>scores[i]){                    score=scores[i];                    scores[i]=scores[j];                    scores[j]=score;                }            }        }        System.out.println("前三名为:");        for(i=0,j=0;j<3;i++){        if(scores[i]>=0&&scores[i]<=100){             System.out.println(scores[i]);             j++;        }        }    }                    }//下面的为什么不可以?/*public class HelloWorld {        //完成 main 方法    public static void main(String[] args) {        int [] scores={89,-23,64,91,119,52,73};        HelloWorld hello=new HelloWorld();        hello.sco(scores);            }        //定义方法完成成绩排序并输出前三名的功能        public void sco(int scores[]){        int score;//就只是把i,j的声明放在了for循环里面,进行编译就报错,大概是说第二个for里不能使用i,j,为什么        for(int i=0;i<scores.length-1;i++){            for(int j=i;j<scores.length;j++){                if(scores[j]>scores[i]){                    score=scores[i];                    scores[i]=scores[j];                    scores[j]=score;                }            }        }        System.out.println("前三名为:");        for(i=0,j=0;j<3;i++){        if(scores[i]>=0&&scores[i]<=100){             System.out.println(scores[i]);             j++;        }        }    }                    }*/
查看完整描述

2 回答

已采纳
?
Caballarii

TA贡献1123条经验 获得超629个赞

如果在for循环的括号里定义int i,int j,那么i和j的作用域就只在这个循环内,循环外是不可以用的,所以你第二个for循环里也得写成int i=0。建议不同的循环里使用不同的循环变量,否则容易冲突出错

查看完整回答
反对 回复 2016-10-09
?
qq_灵魂深处_1

TA贡献5条经验 获得超4个赞

一楼回答,完美
查看完整回答
反对 回复 2016-10-09
  • 2 回答
  • 0 关注
  • 1460 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信