行为参数化
- 实验目的:将函数作为参数,实现通用性函数。理解行为参数化的意义,掌握高阶函数、闭包(closure)等概念。
- 实验内容:输出0-x之间符合“某种”条件的数
回顾
如果求解的是一个具体的问题,如输出0-x之间 3的倍数而且含5的数,可以编写函数filter (int x),如下。
package chap2.behaviorParameterization;
public class Demo{
private static boolean is3x(int n) { //n 是否3的倍数
return (n % 3 == 0);
}
private static boolean isInclude5(int n) { //n 是否包含5
while (n != 0) {
if (n % 10 == 5) {
return true;
}
n /= 10;
}
return false;
}
public static void filter(int x) {
for (int i = 0; i < x; i++) {
if (is3x(i) && isInclude5(i)) {
System.out.print(" " + i);
}