7.4 多参数和无参数

函数可以有一个以上的参数,例如f(x,y)=3x+4y。这个在Java里面怎么表达呢?如下所示:
public static int func2(int x,int y){
    int z=3*x+4*y;
    return z;
}
/*
调用func2
 */
public static void main(String[]args){
    int r=6;
    int m=7;
    int y=func2(r,m);
    System.out.println(y);
}
上面的代码展示了两个参数的写法。超过两个参数类同。
每一个参数都需要有类型说明,然后用逗号隔开。
调用的时候,按照定义的参数顺序来传递。例如在这样调用func2(5,6),那么5就赋给了x,6就赋给了y,计算z的值最后返回。
函数还可以没有参数,这类函数的计算结果不需要任何参数输入,例如:
public static double pi(){
    return 3.1415926;
}
这个函数返回pi的值,它不需要输入。这类函数的调用和有参数的函数调用是一样的:
public static void main(String[]args){
    int r=6;
    double s=pi()*r*r;
    System.out.println("圆的面积是"+s);
}

练习题

  • 选择题
    1.下列说法错误的是: (2分) [选择]
    A.
    B. 不需要参数就能调用的函数,就是无参数的函数
    C. 函数没有值计算出来,就是void类型的函数
    D. 参数个数和返回值没有任何关系
    E. main就是无参数,void返回值的函数
  • 定义下列函数
    1.(*)定义一个函数min,参数是两个整型,返回较小的那个数字。 (10分) [编程]
    main函数部分是调用该函数,可视为测试
    public static void main(String[]args){    System.out.println(min(1,5));    System.out.println(min(15,10));}
    
    2.(*)定义一个函数minusAbs,以两个整数为参数,返回值是两个数字差的绝对值。 (10分) [编程]
    main函数部分是调用该函数,可视为测试
    public static void main(String[]args){    System.out.println(minusAbs(1,5));    System.out.println(minusAbs(15,10));}
    
    3.(***)定义一个函数maxDivisor,以两个整数为参数,返回它们的最大公约数。 (10分) [编程]
    main函数部分是调用该函数,可视为测试
    public static void main(String[]args){    System.out.println(maxDivisor(24,36));    System.out.println(maxDivisor(36,24));    System.out.println(maxDivisor(24,48));    System.out.println(maxDivisor(72,36));    System.out.println(maxDivisor(11,13));}
    
    4.(***)定义一个函数minMultiple,以两个整数为参数,返回它们的最小公倍数。 (10分) [编程]
    main函数部分是调用该函数,可视为测试
    public static void main(String[]args){    System.out.println(minMultiple(32,24));    System.out.println(minMultiple(5,3));    System.out.println(minMultiple(24,48));    System.out.println(minMultiple(72,36));    System.out.println(minMultiple(11,13));}
    
    5.(****)定义一个函数addArray,求两个数组的和。 (10分) [编程]
    函数名是addArray,以两个整型数组为参数
    把两个数组相同下标的元素相加,结果放到第三个数组上,最后返回该数组。
    提示:两个数组长度可能不一致,所以结果的数组长度是两个数组长度较大的那个。
    例如两个数组:
    int t1[]={13,24,35,46,27,38,19,20};
    int t2[]={4,-9,56,73,66};
    最终计算的数组就是{17,15, 91,119,93,38,19,20}

    算法:
    首先计算两个数组的长度,得到较长的长度length。
    新建一个结果数组,长度是length
    然后把第一个数组的值复制到这个结果数组,如果长度不一样,后面元素没有被覆盖,默认是0
    然后把这个结果数组和另一个数组的元素相加,赋回给结果数组的对应元素。这两个数组哪个先复制到结果数组,都一样。。
    最终返回结果数组。

    main函数部分是调用该函数,可视为测试
    public static void main(String[]args){    int t1[]={13,24,35,46,27,38,19,20,34};int t2[]={4,-9,56,73,66};int t3[]=addArray(t1,t2);for(int i=0;i < t3.length;i++)System.out.println(t3[i]);}
    
    6.(****)(需完成前面两题)定义一个函数compose (10分) [编程]
    三个参数,前两个参数是整型,第三个参数是布尔类型,如果第三个参数是true,那么返回前面两个数字的最大公约数;否则返回最小公倍数。
    main函数部分是调用该函数,可视为测试
    public static void main(String[]args){    System.out.println(compose(24,36,true));    System.out.println(compose(36,24,false));    System.out.println(compose(24,48,true));    System.out.println(compose(72,36,false));    System.out.println(compose(11,13,false));}
    
    7.(*)定义一个函数testEven,无返回值,一个整型参数x,判断x是偶数还是奇数,例如x是8,则打印“8是偶数”;例如x是13,则打印“13是奇数”。 (10分) [编程]

    main函数部分是调用该函数,可视为测试
    public static void main(String[]args){    testEven(9);    testEven(8);}
    
    8.(**)定义一个函数score,无返回值,一个整型参数。 (10分) [编程]
    参数作为分数,按照“优”(大于等于90分),“良”(大于等于80分小于90分),“中”(大于等于70分小于80分),“及格”(大于等于60小于70),“不及格”(60分以下),“差”(小于30分)输出等级。
    main函数部分是调用该函数,可视为测试
    public static void main(String[]args){    score(90);    score(80);    score(70);    score(60);    score(30);    score(29);}
    
    9.(***)定义一个函数testChar,无返回值,一个字符型参数。 (10分) [编程]
    如果字符是字母,打印“字母”;如果字符是数字,打印“数字”;如果两者都不是,打印“非字母非数字”。
    main函数部分是调用该函数,可视为测试
    public static void main(String[]args){    testChar('A');    testChar('9');    testChar('!');}
    
    10.(***)定义一个函数function,无返回值,以两个整数为参数,(按顺序)打印它们的最大公约数和最小公倍数。 (10分) [编程]
    main函数部分是调用该函数,可视为测试
    public static void main(String[]args){    function(24,36);}
    
    11.(***)定义一个函数triangle,给定三个参数,判断这三个数能否构成一个三角形。 (10分) [编程]
    三角形的条件是:两边之和大于第三边。无返回值,打印判断结果,可以组成打印true,否则打印false。
    提示:任意两边之和大于第三边

    main函数部分是调用该函数,可视为测试
    public static void main(String[]args){    triangle(9,5,15);    triangle(9,15,5);    triangle(5,9,15);    triangle(3,6,7);    triangle(6,7,3);    triangle(6,3,7);}
    
    12.定义一个函数printCollege,没有返回值,没有参数,打印“惠州经济职业技术学院” (10分) [编程]
    main函数部分是调用该函数,可视为测试
    public static void main(String[] args){printCollege();}