Java函数
定义函数
对象的操作
String s = "Hello";
//对对象进行操作要加上点
int i = s.length();
- 这些都是对象在执行函数
实例代码:素数求和
package com.company;
import java.util.Scanner;
public class Main {
public static boolean isPrime(int i){
boolean isPrime = true;
for (int k = 2; k < i; k++) {
if ( i % k == 0 ) {
isPrime = false;
break;
}
}
return isPrime;
}
public static void main(String[] args) {
// write your code here
Scanner in = new Scanner(System.in);
int m = in.nextInt();
int n = in.nextInt();
//分开1 和 2
// if ( m==1 || m==2) {
// isPrime = ture;
// }
// 不知道这条语句的意思
if ( m == 1 ) m = 2;
int cnt = 0;
int sum = 0;
//判断素数
for ( int i = m; i <= n; i++) {
if (isPrime(i)) {
cnt++;
sum += i;
}
}
System.out.println("在"+m+"和"+n+"之间有"+cnt+"个素数,总和为"+sum);
}
}
[图片上传失败...(image-abe0b5-1576725462826)]
实例代码:范围求和
package com.company;
import java.util.Scanner;
public class Main {
public static void sum(int a,int b) {
int sum = 0;
for ( int i = a; i <= b; i++) {
sum = sum + i;
}
System.out.println("The sum between"+" "+a+" "+"and"+" "+b+" "+"is"+" "+sum);
}
public static void main(String[] args) {
// write your code here
Scanner in = new Scanner(System.in);
sum(10,20);
sum(2,3);
sum(36,40);
}
}
[图片上传失败...(image-3e9872-1576725462826)]
调用函数
- 函数名(参数值);
- 0 起到了现在要调用函数的作用
- 即使没有参数也要有()
从函数中返回值
- return 停止函数并返回一个值
- return + 返回值;
没有返回值的函数
- void 函数名(参数表)
- 不能使用带值的return
- 可以没有return
- 调用的时候不能作返回值的赋值
参数传递
调用函数
- 如果函数中有参数,调用函数的时候必须传递给它数量、类型正确的参数
- 可以传递给函数的值为表达式的结果,可以为
- 字面量
- 变量
- 函数返回值
- 计算的结果
Java语言在调用函数的时候,永远只把值赋给函数,不会传递变量
本地变量
- 函数每一次运行都会产生一个独立的变量空间,在这个空间的变量是函数这次运行所独有的,称为本地变量
- 定义在函数内部的变量就是本地变量
- 参数也是本地变量
本地变量的规则
- 本地变量是定义在块内的
- 可以是定义在函数的块内
- 可以定义在语句的块内
- 可以随便拉一对大括号定义变量
- 程序进入这个块之前,其中的变量不存在,离开这个块,变量也消失了
- 块外面定义的变量,里面均有效
- 不能在一个块内定义同名变量,不能定义块外面定义过的变量
- 本地变量不会默认初始化
- 参数在进入函数时就被初始化了
变量的生存期和作用域
- 生存期:变量有效的周期
- 作用域:在什么范围内可以访问这个变量
- 对于本地变量,答案为:大括号内——块