Llamada de función
package hello;
import java.util.Scanner;
public class Main{
public static int fun(int n, int m) {
int sum = 0;
for(int i = n; i <= m ;i ++)
{
sum += i;
}
return sum;
}
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int m = in.nextInt();
System.out.println(fun(n, m));//调用
}
}
Paso de parámetros
Los tipos de los parámetros pasados deben coincidir;
cuando la función espera un tipo de parámetro que es más ancho que el tipo proporcionado en el momento de la llamada, el compilador convierte bien el tipo;
char —> int —> double
package hello;
import java.util.Scanner;
public class Main{
public static int fun(double n, double m) {
int sum = 0;
for(int i = (int)n; i <= m ;i ++)
{
sum += i;
}
return sum;
}
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int m = in.nextInt();
fun(n, m);
System.out.println(fun(n, m));
}
}
llamada recursiva a la función
package hello;
import java.util.Scanner;
public class Main{
public static int factor(int n) {
if(n == 1)
return 1;
return n * factor(n - 1);
}
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int n = in.nextInt();
System.out.println(factor(n));
}
}
Cada vez que se ejecuta la función, se genera un espacio de variables independientes. Las variables en este espacio son únicas para esta ejecución de la función y se denominan variables locales; las variables
definidas dentro de la función son variables locales; los
parámetros también son variables locales;
por las variables locales, la vida útil y el alcance de las variables son llaves;
las variables locales no se inicializan de forma predeterminada y los parámetros se inicializan al ingresar a la función;