为什么要创建函数(方法)?
1.循环的意义?
答:是将一些重复的代码进行封装,减少了空间资源的占用率,避免了代码冗余。
2.函数的出现?
答:函数的出现主要解决了一些功能性代码重复的问题
3.什么叫做功能性代码?
答:功能性代码具体就是指这段代码具有一些独立的小功能,可以利用这些功能去解决一些问题。
4.什么是函数?
答:函数就是定义在类中的一段具有独立功能的小程序,能被多次使用。
函数定义的格式
访问修饰符 函数类型 返回值类型 函数名(参数列表){
//函数体;
//return 返回值;
}
- 访问修饰符:public(公共的) protected(受保护的) private(私有的)
- 函数类型:static静态函数 Synchronized同步函数
native本地函数 - 参数列表:参数类型1 参数名1, 参数类型2 参数名2,…
- 函数体:具体实现功能的代码
- return:表示结束当前函数,当有返回值时,返回该值
- 返回值:如果没有返回值,返回类型就为void,每次返回只返回一个数
Test01
public static int pow(int x,int n){
int res=1;
for(int i=1;i<=n;i++){
res=res*x;
}
return res;
}
该代码中,对应的访问修饰符为public,函数类型为static,函数返回类型为int,函数名为pow,参数类型1int 参数名1x,参数类型2int 参数名2n,返回值为int型的res,该代码最终实现结果是x的n次幂。
return与参数
有参有反:正常情况
有参无反:
无参有反:函数内部一般操作的是全局变量
无参无反:
对于无返回值的函数而言 不能输出 不能赋值 不能参与计算 只能调用
对于有返回值的函数而言 可以输出 可以赋值 可以参与计算 也能调用
Test02
import java.util.Scanner;
class miqi06{
/*
数据:密码
步骤:
1.先运行main()函数,用户输入一个密码
2.判断该密码是否合法
调用isValid()函数判断,如果ture,则合法,false,则非法
3.调用isValid()函数判断
调用isRight1(pwd)&&isRight2(pwd)&&isRight3(pwd)
4.实现isRight1(pwd)判断
实现isRight2(pwd)判断
调用isDigit(char c)判断是否为数字
调用isLetter(char c)判断是否为字母
实现isRight3(pwd)判断
调用isDigit(char c)判断是否为数字
5.最终判断isRight1(pwd)&&isRight2(pwd)&&isRight3(pwd)
为真,则返回true,输出合法。
*/
public static void main(String[] args){
//创建一个Scanner类对象
Scanner scanner=new Scanner(System.in);
//提示用户键入输入
System.out.print("请输入密码:");
//读取输入的值并将它赋值给pwd
String pwd=scanner.nextLine();
//判断密码是否合法
if(isValid(pwd)){
System.out.println("Valid Passwd");
}else{
System.out.println("Invalid Passwd");
}
}
/*
isValid(String pwd)函数,判断是否三个密码要求
*/
public static boolean isValid(String pwd){
return isRight1(pwd)&&isRight2(pwd)&&isRight3(pwd);
}
/*
isRight1(String pwd)判断该密码是否大于等于8位
*/
public static boolean isRight1(String pwd){
return pwd.length()>=8;
}
/*
isRight2(String pwd)判断该密码是否只包含数字或字母
*/
public static boolean isRight2(String pwd){
for(int i=0;i<pwd.length();i++){
char c=pwd.charAt(i);
if(!isDigit(c)&&!isLetter(c)){
return false;
}
}
return true;
}
/*isDigit(char c)判断密码中字符是否是数字*/
public static boolean isDigit(char c){
return c>='0'&&c<='9';
}
/*isLetter(char c)判断密码中字符是否是字母*/
public static boolean isLetter(char c){
return (c>='a'&&c<='z')||(c>='A'&&c<='Z');
}
/*isRight3(String pwd)判断该密码中是否至少包含两位数字*/
public static boolean isRight3(String pwd){
int digitCount=0;//标记,记录数字的个数
for(int i=0;i<pwd.length();i++){
char c=pwd.charAt(i);
if(isDigit(c)){
digitCount++;
}
}
return digitCount>=2;
}
}