函数定义与调用
函数定义
素数求和
求和
-
求出1到10、20到30和35到45的三个和
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int i;
int sum;
sum = 0;
for ( i=1; i<=10; i++ )
{
sum += i;
}
System.out.println(1+"到"+10+"的和是"+sum);
sum = 0;
for ( i=20; i<=30; i++ )
{
sum += i;
}
System.out.println(20+"到"+30+"的和是"+sum);
sum = 0;
for ( i=35; i<=45; i++ )
{
sum += i;
}
System.out.println(35+"到"+45+"的和是"+sum);
sum = 0;
}
}
-
三段几乎一模一样的代码!
“代码复制”是程序质量不良的表现
改进:
求和函数
package Mooc.函数;
import java.util.Scanner;
public class Demo01 {
public static void sum(int a, int b)
{
int i;
int sum;
sum = 0;
for (i = a; i <= b; i++)
{
sum += i;
}
System.out.println(a + "到" + b + "的和是" + sum);
}
public static void main(String[] args){
Scanner in = new Scanner(System.in);
sum(1,10);
sum(20,30);
sum(35,45);
}
}
什么是函数?
-
函数是一块代码,接收零个或多个参数,做一件事情,并返回零个或一个值
-
可以先想像成数学中的函数:
-
y = f(x)
函数定义
调用函数
-
函数名(参数值)
-
()起到了表示函数调用的重要作用
-
即使没有参数也需要()
-
如果有参数,则需要给出正确的数量和顺序
-
这些值会被按照顺序依次用来初始化函数中的参数
函数返回
从函数中返回值
public class Demo02 {
public static int max(int a, int b)
{
int ret;
if( a>b )
{
ret = a;
}
else
{
ret = b;
}
return ret;
}
public static void main(String[] args){
int a = 5;
int b = 6;
int c;
c = max(10,12);
c = max(a,b);
c = max(a,23);
c = max(max(c,a),max(5,b));
System.out.println(max(a,b));
}
}
package Mooc.函数;
public class Demo02 {
public static int max(int a, int b)
{
int ret;
if( a>b )
{
// ret = a;
return a;
}
else
{
// ret = b;
return b;
}
// return ret;
}
//有多个出口(不好的设置!)
public static void main(String[] args){
int a = 5;
int b = 6;
int c;
c = max(10,12);
c = max(a,b);
c = max(a,23);
c = max(max(c,a),max(5,b));
System.out.println(max(a,b));
}
}
没有返回值的函数
-
如果函数有返回值,则必须使用带值的return