题目是:写一个函数,返回一个数组中所有元素被第一个元素除的结果

mac2022-06-30  81

今天研究一个关于函数的问题。编程之美中第一章提出的。题目是:写一个函数,返回一个数组中所有元素被第一个元素除的结果首先按照题意。写了这样一个函数 public static int[] divide() {  int[] a = {1,2,3,4,5,8,9};  int[] b = {} ;  for(int i =0;i<a.length;i++){   b[i]=a[i]/a[0];  }  return b; }

好来运行~……报错

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at test.divide(test.java:17) at test.main(test.java:9)- - 当执行第一环节的时候1/1就已经报错了。这是为什么呢~喔因为b我并没有给值,所以默b的length为0。

人家是0你非要给它值,当然会报错啦。我换一种方式: public static int[] divide() {  int[] a = {10,2,35,0,3,50,6,7,8};  int b = a[0];  for(int i =0;i<a.length;i++){   a[i]=a[i]/b;  }  return a; }嗯嗯嗯,这样就没有问题了~ = = 突然想起,如果除数为0会怎样呢。……会报错。Exception in thread "main" java.lang.ArithmeticException: / by zero at test.divide(test.java:19) at test.main(test.java:9)---

经过修改之后:

 public static int[] divide(int[] l) {  int[] a = l;  int b = a[0];  for(int i =0;i<a.length;i++){   try {    a[i] = a[i] / b;   } catch (Exception e) {    a[i]=0;   }  }  return a; }好~ 无敌了。顺便一说,我想只有白痴才会傻到这样写吧……注意一下细节嘛。。a[i]=a[i]/a[0];

转载于:https://www.cnblogs.com/J2EEPLUS/archive/2009/03/26/2487824.html

最新回复(0)