函数的四要素:函数名、输入、输出(返回)、加工。
函数分为两种:一种是有返回值得函数,一种是没有返回值的函数。
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; } }