在调用函数的时候一定要注意:1.实际参数的类型与形式参数的类型匹配。
2.实际参数与形式参数的个数要相同。
3.实际参数与形式参数的类型个数要一一对应。
我以注册与登录的程序为列来说明:
package com.lovo.homework;
import java.util.Scanner;
public class Homework2016_11_22_1 {
public static void main(String[] args) {
String[] a=new String[3];
int[] b=new int[3];
String[] name=new String[10];
int[] grade=new int[10];
while(true){
System.out.println("**************成绩管理系统****************");
System.out.println("A:注册 B:登录 C:退出");
Scanner input=new Scanner(System.in);
System.out.println("请选择操作:");
String str=input.nextLine();
char chr=str.toCharArray()[0];
switch (chr) {
case 'A':
register(a,b);
break;
case 'B':
login(a,b,name,grade);
break;
case 'C':
System.out.println("退出");
System.exit(-1);
default:
break;
}
}
}
public static void register(String[] a,int[] b){
Scanner input=new Scanner(System.in);
System.out.println("请输入用户名user:");
String newuser=input.nextLine();
System.out.println("请设置密码pwd:");
int newpwd=input.nextInt();
System.out.println("注册成功");
for (int i = 0; i < a.length; i++) {
if (a[i]==null) {
a[i]=newuser;
b[i]=newpwd;
break;
}
}
}
public static void login(String[] a,int[] b,String[] name,int[] grade){
Scanner input=new Scanner(System.in);
while(true){
System.out.println("请输入用户名user:");
String user=input.next();
System.out.println("请输入密码pwd:");
int pwd=input.nextInt();
int index=0;
for (int i = 0; i < b.length; i++) {
if(user.equals(a[i])&&b[i]==pwd){
System.out.println("登录成功");
index=i;
count(name,grade);
break;
}
}
if(index==0){
//System.out.println("输入错误,请重新登录!");
return;
}
}
}
在注册的时候我们采用了调用函数register,在register中我们需要用到main函数中的两个数组a与b,所以在调用函数的实际参数我们就需要必须加上a与b,如程序中register(a,b);这样。而在编写调用函数的时候必须如程序中public static void register(String[] a,int[] b)这样才能正常调用。
在登录的时候我们需要调用4个数组,所以在登录的调用函数的实际参数中login(a,b,name,grade);也必须全部写出,编写时也要写4个形式参数如:public static void login(String[] a,int[] b,String[] name,int[] grade)这样。个数必须一样,而且还要一一对应才行。