本帖最后由 jrry 于 2013-8-11 11:31 编辑
方法一不行是因为返回值问题,如下- public static int checkChar(char[] ch1, char ch) {
- if (ch1 == null) {
- new IllegalArgumentException().printStackTrace();
- } else {
- for (int i = 0; i < ch1.length; i++) {
- if (ch == ch1[i]) {
- return i;
- }
- }
- return -1;
- }
- }
- public static int checkChar2(char[] ch1, char ch) {
- int indenx = -1;
- if (ch1 == null) {
- new IllegalArgumentException().printStackTrace();
- } else {
- for (int i = 0; i < ch1.length; i++) {
- if (ch == ch1[i]) {
- indenx = i;
- }
- }
- }
- return indenx;
- }
复制代码 在ch1==null时,你只是打印了一个非法参数异常,无返回值,所以编译会出错
而方法二没有报错是因为无论ch1为不为null,你都返回的是一个局部变量indenx |