本帖最后由 李东升 于 2012-7-31 14:31 编辑
你代码最大的我错误在于生成随机数代码的(int)放错位置,这样给int数组赋值失败。而且,你传入的是一个空数组,那么数组所有的值都是0,那么最后最小是也就是0,不管你数组里面有没有0.至于if else的判断没错。
说说你写这个方法的作用,这个作用是什么呢?传递一个数组进去,输出最大值和最小值?那你为什么要在方法内部才给数组赋值,还有一个方法要尽量简单,单一。最好的办法是传入一个有值的数组,然后返回一个最大值一个最小值,但是这样必须返回一个数组。而且,方法里面尽量不要输出语句。- public int[] maxMin(int [] nums){
- int max=nums[0];
- int min=nums[0];
- for(int i=0;i<nums.length;i++){
- System.out.println(nums[i]);
- if(nums[i]>max){
- max=nums[i];
- }else if(nums[i]<min){
- min=nums[i];
- }
- }
- System.out.print("最大值是:"+max);
- System.out.println("最小值是:"+min);//这里的三个输出语句最好去掉,这里是为了对比输出结果是否正确。
- //也可以在main方法中遍历输出数组
- return new int[]{max,min};
- }
- public static void main(String[] args) {
-
- int [] nums=new int[10];
- for(int i=0;i<nums.length;i++){
- nums[i]=(int)(Math.random()*1000);}
- Lt l=new Lt();
- int[] a=l.maxMin(nums);
- System.out.println(a[0]+" "+a[1]);
- }
复制代码 |