Java定义的方法中,参数是一维数组,需要进行参数的非空判断
在java程序中,当需要对一维数组进行处理,通常我们会把其中单独的一个功能拿出来生成一个方法。这个方法中的形参是由我们根据需求来定义。
当我们在自定义的方法中调用引用数据类型时,因为我们不知道调用的模块是否合法,这时我们就需要进行非空判断。这里我就拿属于引用类型的数组来举例:
import java.util.Random;
public class Work1 {
public static void main(String[] args) {
//定义一个长度为5的数组
//int[] arr = new int[6];
int[] arr = null;
//调用给数组赋值的方法
rd(arr);
//调用遍历数组方法
traverse(arr);
//调用将数组倒序做成字符串的方法
int num1 = number(arr);
System.out.println("这个数为:" + num1);
}
public static int panDuan(int[] arr) {
//如果数组的没有内存,也就是null,那么这个方法就可以结束了,下面的代码不想再运行了。
if(arr == null || arr.length <= 0){
System.out.println("传入的参数非法");
return 0;//1.停止方法
//2.将后面的结果,返回给调用者。
}
return 1;
}
public static int number(int[] arr) {
panDuan(arr);
int sum = 0;
//定义一个从高到低遍历索引的循环,最大值为数组长度,也就是arr.length - 1
for (int i = arr.length - 1; i >= 0; i--) {
//count是用来表示个十百千万之类的数值
int count = 1;
//想数组从大到小遍历后,表示一个整数,
//这个循环的作用是用来判断索引对应的元素在这个整数中需要在什么位置
for (int j = i; j > 0; j--) {
count = count * 10;
}
//将计算出来的值相加,最后的和表示整数
sum += arr[i] * count;
}
System.out.println("C");
return sum;
}
//遍历数组的方法
public static void traverse(int[] arr) {
panDuan(arr);
for (int i = 0; i < arr.length; i++) {
//打印索引在数组中对应的元素
System.out.print(arr[i]);
}
//换行
System.out.println();
System.out.println("B");
}
//通过随机数给数组赋值的方法
public static void rd(int[] arr) {
panDuan(arr);
//创建随机数生成器
Random rd = new Random();
for (int i = 0; i < arr.length; i++) {
//生成0 - 9 之间的随机数
int a = rd.nextInt(10);
//将生成的随机数赋值给数组中的对应索引
arr[i] = a;
}
System.out.println("A");
}
}
我们可以在自定义的方法中做一个非空判断:
public static int panDuan(int[] arr) {
//如果数组的没有内存,也就是null,那么这个方法就可以结束了,下面的代码不想再运行了。
if(arr == null || arr.length <= 0){
System.out.println("传入的参数非法");
return 0;//1.停止方法
//2.将后面的结果,返回给调用者。
}
return 1;
}
当数组是null,那么就直接返回预定数值来结束方法,同时在控制台进行输出,这样,在后续的工作中就会为我们减轻很多负担。