欢迎访问宙启技术站
智能推送

Java中函数参数传递的方法和控制流程

发布时间:2023-06-14 23:56:38

Java中函数参数传递有两种方法:值传递和引用传递。值传递是指将实参的值复制一份传递给函数的形参,函数操作的是形参的值,不会影响实参的值。引用传递是指将实参的地址传递给函数的形参,函数操作的是实参所指向的对象,会影响实参的值。

例如:

public static void main(String[] args) {
    int a = 1;
    changeValue(a);
    System.out.println(a);  // 输出1
}

public static void changeValue(int b) {
    b = 2;
}

此例中函数changeValue只对传入的参数做了简单的赋值操作,但因为Java中参数传递是值传递,因此实参a不会发生改变。

再看一个例子:

public static void main(String[] args) {
    int[] arr = new int[] {1, 2};
    changeArrayValue(arr);
    System.out.println(Arrays.toString(arr));  // 输出[2, 2]
}

public static void changeArrayValue(int[] arr) {
    arr[0] = 2;
}

因为Java中参数传递是引用传递,函数changeArrayValue通过修改形参arr所指向的数组的第一个元素,实现了对实参arr的修改。

除了值传递和引用传递,Java中还有一种特殊的参数传递,即可变参数。可变参数是Java SE 5中引入的一个新特性,可以让一个方法接收任意数量的参数。可变参数必须是最后一个参数,并且被定义为类型相同的可变参数列表。

例如:

public static void main(String[] args) {
    printStrings("hello", "world");  // 输出hello world
    printStrings("a", "b", "c");     // 输出a b c
}

public static void printStrings(String... strings) {
    for (String str : strings) {
        System.out.print(str + " ");
    }
    System.out.println();
}

此例中函数printStrings接收一个可变参数列表,可以接收任意数量的字符串参数。在函数内部使用for-each循环遍历可变参数列表,将每个字符串参数打印出来。使用可变参数可以简化函数参数列表的定义和调用。

Java中控制流程是指程序执行的顺序。主要有三种控制流程:顺序结构、选择结构和循环结构。

顺序结构是指按照代码的书写顺序依次执行程序代码。

例如:

int a = 1;
int b = 2;
int sum = a + b;
System.out.println(sum);

此例中代码依次执行,计算a和b的和并将结果打印出来。

选择结构是指根据条件执行程序的不同代码块。Java中的选择结构有if语句、switch语句和三目运算符。

例如:

int score = 80;
if (score >= 90) {
    System.out.println("优秀");
} else if (score >= 80) {
    System.out.println("良好");
} else {
    System.out.println("不及格");
}

此例中根据分数的不同,执行不同的代码块。

循环结构是指重复执行程序的某一段代码块。Java中的循环结构有for循环、while循环和do-while循环。

例如:

for (int i = 0; i < 5; i++) {
    System.out.println(i);
}

此例中使用for循环,重复执行输出i的值。循环体中代码的执行次数由循环条件的控制,当循环条件不满足时,循环结束。