子函数:
马克- to-win:马克 java社区:防盗版实名手机尾号: 73203。
马克-to-win:我把去颐和园路线写在红纸上,去北海的方法写在黄纸上,我要让你去颐和园两次,去北海三次的话,只需让按红纸做两次,按黄纸做三次,这里谁是子涵数?
例1:
public class Test14 {
public static void main(String[] args) {
printqijin();
printyangwen();
printqijin();
}
static void printqijin() {
int i = 0;
while (i < 2) {
System.out.println("齐井");
i++;
}
}
static void printyangwen() {
System.out.println("扬");
}
}
结果:
齐井
齐井
扬
齐井
齐井
马
克-to-win:程序就是人要告诉计算机干什么的一堆指令。计算机拿到这堆指令,开始干活。从main左括号开始,运行到右括号就结束。像if,
main,int这些字,计算机都很好理解,但是一遇到子函数计算机就傻了,因为他不认识这些字,它就开始整个程序找这个子函数体,找到后就调用,如有实
参,就把实参值传给形参。调用完就回到主函数中刚才调用的那一句的下一句。如有return,子函数中return值会给函数名对应的等号左边的值,子函
数当即终止,即执行子函数右大括号。在上个例子中,void表示没有返回值。
例2:
给定整数返回平方
public class Test15 {
public static void main(String[] args) {
int a;
int d;
a = fff(2);
System.out.println(a);
d = fff(3);
System.out.println(d);
}
static int fff(int b) {
int c;
c = b * b;
return c;
}
}
结果:
4
9
例3:
public class Test16 {
public static void main(String[] args) {
String a;
String b;
a = zhazhi("苹果");
b = zhazhi("桃");
System.out.println(a);
System.out.println(b);
}
static String zhazhi(String k) {
String l;
l = k + "汁";
return l;
}
}
结果:
苹果汁
桃汁
作业1: 做一个子函数返回比自己大1的数。
public class Test17 {
public static void main(String[] args) {
int a;
int b;
a = hhh(5);
b = hhh(4);
System.out.println(a);
System.out.println(b);
}
static int hhh(int c) {
int d;
d = c + 1;
return d;
}
}
结果:
6
5
小结:实参有两种:马克-to-win:(1)普通值比如int(2)数组类型,当是数组类型时(比如实参是a[],虚参是c[]),虚参指向实参的地址,如c指向a。
调用:是指发现不认识函数名找到函数体,开始执行函数体,这个过程叫调用,其实调用本质就是用函数体替代掉函数名那句话而已。这样主函数就会非常清晰。
作业2: 翻倍打印,复制数组
public class Test19 {
public static void main(String[] args) {
int a[] = { 7, 4, 3, 2, 5 };
fanbei(a);
dayin(a);
}
static void fanbei(int[] b) {
int i = 0;
while (i < b.length) {
b[i] = b[i] * 2;
i++;
}
}
static void dayin(int[] c) {
int j = 0;
while (j < c.length) {
System.out.println(c[j]);
j++;
}
}
}
结果:
14
8
6
4
10
作业3: 求数组的长度
public class Test20 {
public static void main(String[] args) {
int a[] = { 3, 2, 1, 7 };
int b;
b = hh(a);
System.out.println(b);
}
static int hh(int[] c) {
int d;
d = c.length;
return d;
}
}
结果:
4
作业4: 求数组中最大数
public class Test21 {
public static void main(String[] args) {
int a[] = { 5, 8, 7, 4 };
int b;
b = kk(a);
System.out.println(b);
}
static int kk(int[] c) {
int d = c[0];
int i = 0;
while (i < c.length) {
{
if (c[i] > d)
d = c[i];
}
i++;
}
System.out.println(d);
return d;
}
}
结果:
8
8
作业5:求数组中最小数
public class Test23 {
public static void main(String[] args) {
int a[] = { 3, 5, 2, 7 };
int i = 0;
int c = a[0];
while (i < a.length) {
if (a[i] < c) {
c = a[i];
}
i++;
}
System.out.println(c);
}
}
结果:
2
作业6:求数组中第一个数。
public class Test24 {
public static void main(String[] args) {
int a[] = { 3, 2, 1, 7 };
int b;
b = hhh(a);
System.out.println(b);
}
static int hhh(int[] c) {
int d;
d = c[0];
return d;
}
}
结果:
3
作业7:找大数位置
public class Test26 {
public static void main(String[] args) {
int a[] = { 4, 7, 8, 6 };
int b;
b = findbigweizhi(a);
System.out.println(b);
}
static int findbigweizhi(int[] c) {
int i = 0;
int d = c[0];
int p = 0;
while (i < c.length) {
if (c[i] > d) {
d = c[i];
p = i;
}
i++;
}
System.out.println(d);
System.out.println(p);
return p;
}
}
结果:
8
2
2
作业8:找大数
public class Test29 {
public static void main(String[] args) {
int a = 8;
int b = 7;
int c = 9;
int k = zhaodashu(a, b, c);
System.out.println(k);
}
static int zhaodashu(int x, int y, int z) {
int big;
big = x;
if (y > big) {
big = y;
}
if (z > big) {
big = z;
}
return big;
}
}
结果:
9
作业9:马克-to-win:给定一个整数,数组和一个整数值,用子函数判断,此数组中是否包含此整数值?如果不包含返回-1,如果包含返回位置。比如:如果第一个值就等于它就返回0。
public class Test30 {
public static void main(String[] args) {
int a[] = { 5, 6, 7, 3, 9 };
int m = 7;
int b;
b = zhaoweizhi(a, m);
System.out.println(b);
}
static int zhaoweizhi(int[] c, int m) {
int i = 0;
while (i < c.length) {
if (c[i] == m) {
return i;
}
i++;
}
return -1;
}
}
结果:
2
马
克-to-win:例:排序,替换大数。第一步找出最小的数3给m。第二步开始循环做a.length次,这里就是4。举例这里做4次,找出最大的数放在
另一个数组b中。b={8,0,0,0}。同时a中刚才最大的数变成最小的那个数m等于3,a就变成a={5,3,3,6},第二次循环做同样的事。b=
{8,6,0,0},a变成{5,3,3,3},第三次循环做同样的事。b={8,6,5,0},a变成{3,3,3,3},第四次循环做同样的事。b=
{8,6,5,3},a变成{3,3,3,3}
public class Test32 {
public static void main(String[] args) {
int a[] = { 5, 8, 3, 6 };
int b[] = { 0, 0, 0, 0 };
int m = 3;
int big;
big = tihuan(a, m);
b[0] = big;
big = tihuan(a, m);
b[1] = big;
big = tihuan(a, m);
b[2] = big;
big = tihuan(a, m);
b[3] = big;
System.out.println("完了");
int i = 0;
while (i < 4)
{
System.out.println(b[i]);
i++;
}
}
static int tihuan(int[] a, int m) {
int i = 0;
int big = a[0];
int p = 0;
while (i < a.length) {
if (a[i] > big) {
big = a[i];
p = i;
}
i++;
}
System.out.println(big);
System.out.println(p);
a[p] = m;
return big;
}
}
结果:
8
1
6
3
5
0
3
0
完了
8
6
5
3
作业10:用固定最小数替换数组内大数,大数依次放在另一个数组里。
public class Test31 {
public static void main(String[] args) {
int a[] = { 7, 8, 4, 6 };
int b[] = { 0, 0, 0, 0 };
int m = 4;//数组内最小值是4
int i = 0;
int big;
while (i < 4) {
big = tihuan(a, m);
b[i] = big;
i++;
}
System.out.println("wanle ");
i = 0;
while (i < 4)
{
System.out.println(b[i]);
i++;
}
}
static int tihuan(int[] a, int m) {
int i = 0;
int big = a[0];
int p = 0;
while (i < a.length) {
if (a[i] > big) {
big = a[i];
p = i;
}
i++;
}
System.out.println(big);
System.out.println(p);
a[p] = m;
return big;
}
}
结果:
8
1
7
0
6
3
4
0
wanle
8
7
6
4