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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© sun~~ 中级黑马   /  2013-1-8 12:54  /  1789 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 sun~~ 于 2013-1-8 13:02 编辑
  1. package exercise4;
  2. import java.util.Iterator;
  3. public class Day041 {
  4. /** 例题一:获取数组中的最大值,以及最小值。
  5. */
  6.         public static void main(String[] args) {
  7.                int[] arr={3,4,6,5,7,8};
  8.                       //无返回值类型void 不能从void转化成int
  9.                int min = getMin(arr);
  10.               System.out.println("max="+min);
  11.         }

  12.      public static void getMin(int[] arr){
  13.         int min=arr[0];
  14.               for (int i = 1; i < arr.length; i++) {
  15.                  if(arr[i]<min)
  16.                    min=arr[i];
  17.                 }
  18.         //return min;
  19. }
  20. }
复制代码
在数组获取最值得时候 出现不能从void转化成int 怎么解释呢??
如果还是用无返回值void类型定义,应该怎么修改代码呢?

8 个回复

倒序浏览
  1. package exercise4;
  2. import java.util.Iterator;
  3. public class Day041 {
  4. /** 例题一:获取数组中的最大值,以及最小值。
  5. */
  6.         public static void main(String[] args) {
  7.                int[] arr={3,4,6,5,7,8};
  8.                       //无返回值类型void 不能从void转化成int
  9.                int min = getMin(arr);
  10.               System.out.println("max="+min);
  11.         }

  12.      public static int getMin(int[] arr){
  13.         int min=arr[0];
  14.               for (int i = 1; i < arr.length; i++) {
  15.                  if(arr[i]<min)
  16.                    min=arr[i];
  17.                 }
  18.         return min;
  19. }
  20. }
复制代码
回复 使用道具 举报
何竹冬 发表于 2013-1-8 13:01

怎么解释无返回值类型void不能从void转成int
    要是我还用void怎么改代码呢?
回复 使用道具 举报
你方法定义的就是void 就是说没有返回值,当然不能写return了 你如果飞要用void 而且又想打印出来就在方法里面打印,主函数调用就好了

public static void getMin(int[] arr){
        int min=arr[0];
              for (int i = 1; i < arr.length; i++) {
                 if(arr<min)
                   min=arr;
                }
        System.out.println(arr[min]); 你在方面这里打印就好了
}
回复 使用道具 举报
张森 发表于 2013-1-8 13:13
你方法定义的就是void 就是说没有返回值,当然不能写return了 你如果飞要用void 而且又想打印出来就在方法 ...

你的思想是对的 代码还是有问题的  
还是很感谢呀!!
回复 使用道具 举报
可以的,你可以这样做,
在main函数中调用static方法maxAndMin
,这样你只需在main函数中传递一个int类型数组,
就可以打印出最大值和最小值,代码如下:
public class ArrayTest {
        public static void main(String[] args) {
                int[] arr = { 3, 4, 6, 5, 7, 8 };
                maxAndMin(arr);
        }

        public static void maxAndMin(int[] arr) {
                int temp;
                for (int i = 0; i < arr.length; i++) {
                        for (int j = i + 1; j < arr.length; j++) {
                                if (arr[i] < arr[j]) {
                                        temp = arr[i];
                                        arr[i] = arr[j];
                                        arr[j] = temp;
                                }
                        }
                }
                System.out.println("max: " + arr[0]);
                System.out.println("min: " + arr[arr.length - 1]);
        }
}
这里用到了冒泡排序,再次熟悉了一下冒泡,
回复 使用道具 举报
再次重申一次 冒泡排序(bubbling)
  1. package exercise4;
  2. public class Day044 {
  3.         public static void bubbling(int[] arr){
  4.                 for (int i = 0; i < arr.length-1; i++) {
  5.                         for (int j = 0; j < arr.length-i-1; j++) {
  6.                                 if(arr[j]>arr[j+1]){
  7.                                         int temp=arr[j];
  8.                                                 arr[j]=arr[j+1];
  9.                                                 arr[j+1]=temp;
  10.                                         }
  11.                                 }
  12.                         }

  13.         }
  14.         public static void print(int[] arr){
  15.                 System.out.print("[");
  16.                 for (int i = 0; i < arr.length; i++) {
  17.                         if (i!=arr.length-1)
  18.                                 System.out.print(arr[i]+",");
  19.                         else
  20.                                 System.out.print(arr[i]+"]");
  21.                 }

  22.         }
  23.     public static void main(String[] args){
  24.             int[] arr={3,4,0,5,7,8};
  25.             bubbling(arr);
  26.             print(arr);
  27.     }
  28.   }
复制代码
回复 使用道具 举报
int min = getMin(arr); 明显是你这句有问题,getMin返回值类型为void,不可以给min赋值,直接System.out.println(getMin(arr));就可以了或者你吧这个方法改成返回int类型的也可以啊
回复 使用道具 举报
你的返回值是void,而你却又使用return 返回了一个int类型的值。所以程序就会报错了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马