函数的四要素:函数名、输入、输出(返回)、加工。
函数分为两种:一种是有返回值得函数,一种是没有返回值的函数。
1.
定义:没有返回值的函数:(当我不需要函数的计算结果再拿出来进行运算的时候,我就不需要有返回值,直接在函数中运算完成加工即可)
static void 函数名(参数){
函数体
}
调用:调用没有返回值的函数: 函数名(实际参数);
在函数中的参数叫做虚参,我们需要给他一个实际的参数才能完成整个运算流程。
例如:我要打印一两个数字的和?
public class HS {
public static void main(String[] args) {
jisuan(3,5); 其中3,5就是实际参数赋给a,b的值(位置一定要一一对应!)
}
//没有返回类型的函数
static void jisuan(int a,int b){
int c=a+b;
System.out.println(c);
}
}
当然参数是根据情况来定的,如果没有参数就不需要写参数:
例如:随机生成一个四位数?
public class HS {
public static void main(String[] args) {
suiji();
}
//没有返回类型的函数,随机生成四位数;
static void suiji(){
//在外层定义空字符串来拼接整数型a;
String s="";
//因为是输出一个四位数,所以我要循环四次每次输出一个数
for(int i=0;i<4;i++){
int a=(int)(Math.random()*100000000); //Math.random()成型的方法:调用0-1之间的所有数。这个数一定是个小数,而且
//对10取余那么a就是个位数 //这个数有可能是0.00000001654甚至更多的0,所以尽量在后面乘上一个更大的数
a=a%10; //因为始终是个带小数的double型,所以要前面强制转换成int型,因为我们的目的
//因为a是一个int类型,而我要输出一个字符串, //就是输出一个4位的正数。
//所以我就要在外层定义一个空字符串来拼接上a,
//整型与字符串拼接时会自动变为字符串s=s+a;
s+=a;
}
System.out.println(s);
}
}
2.
定义:有返回值的函数:(如果需要返回一个值来参与到其他运算中,那么函数在定义时就必须有返回类型!返回类型代表的是要返回的值得类型)
static 返回类型 函数名(参数){
函数体
return 变量;
}
调用:调用有返回值的函数:返回类型 变量=函数名(参数);
例1::我要打印两个数字的和?
public class HS {
public static void main(String[] args) {
int a=he(5,6);
System.out.println(a);
}
//有返回值的函数;
static int he(int a,int b){
int c=a+b;
return c;
}
}
一:
同样是打印两个数的和,在我需要有返回值时有一下几个要点:
1.返回类型一定要与返回值的类型相统一
2.调用时先写 数据类型(返回值的类型) 变量名=函数名(参数);
这样此函数才被调用起来。
二:
对于这个返回类型,要灵活运用。举个例子,还是上面的题,如果我要输出一个String类型的字符串该怎么做?
1.首先在定义函数时返回类型就要是String;
2.return回来的值也必须是String类型
3.再调用函数时的数据类型也要是String类型
代码如下:
其却别在于:整型的运算后还是整型,如果要输出整型就不需再进行转换。
如果要输出字符串的话,就需要在函数体重定义一个空字符串来与结果进行拼接,在拼接的过程中整型的数值会自动转换成字符串。
public class HS {
public static void main(String[] args) {
String a=he(5,6);
System.out.println(a);
}
//有返回值的函数;
static String he(int a,int b){
String s="";
int c=a+b;
s+=c;
return s;
}
}
例2:随机生成一个四位数?(有返回值的,因为是随机的4个数排列成的4位数字符串,所以这里的返回类型是String,而不是int。但可以使int[]数组)
public class HS {
public static void main(String[] args) {
String n=sj();
System.out.println(n);
}
//有返回类型的函数,随机生成四位数;
static String sj(){
String s="";
for(int i=0;i<4;i++){
int a=(int)(Math.random()*10000000);
a=a%10;
s=s+a;
}
return s;
}
}