当前位置: 首页 > news >正文

Java课堂6

函数的定义

概念:实现特定功能的一段代码,可反复使用。

定义语法:

        public static void 函数名称{

                //函数体

        }

经验:将需要在多个位置重复使用的一组代码,定义在函数体内。

package demo;
public class Test1{public static void main(String[] args){System.out.println("好好学习");printline();System.out.println("天天向上");printline();System.out.println("dood good study");printline();		System.out.println("day day up");		}public static void printline(){for(int i=1;i<=30;i++){System.out.print("=");}System.out.println();}
}

定义的位置

函数定义在类的内部,与main函数并列。

//位置1

public class Test{

        //位置2

        public static void main(String[] args){

                //位置3

        }

        //位置4

}

//位置5

正确的使用位置:位置2、位置4

函数的调用

先执行函数内部代码,结束后,返回到函数调用处,继续执行。

函数的参数

参数:调用函数时传入的数据

型参与实参

定义语法:

public static void 函数名称(形式参数){

       // 函数主体

}

调用语法:

        函数名称(实际参数);

自定义函数里的public static void printline(int n,String x)里面的int n,String x是形参

 函数调用里面的printline(30,"*");里面的30,"*"是实参

package demo;
public class Test2{public static void main(String[] args){printline(30,"*");System.out.println("好好学习");printline(30,"+");System.out.println("天天向上");printline(25,"-");System.out.println("dood good study");printline(40,"~");		System.out.println("day day up");printline(10,"=");		}public static void printline(int n,String x){for(int i=1;i<=n;i++){System.out.print(x);}System.out.println();}
}

返回值与返回类型

定义语法:

public static 返回值类型 函数名称(形式参数列表){

        //函数主体

        return value;//返回值

}

调用语法:

       变量= 函数名称;

注:返回值有类型用return

package demo;
public class Test4{public static void main(String[] args){int r=add(100,10);if(r%2==0){System.out.println(r+"是偶数");}else{System.out.println(r+"是奇数");}}public static int add(int n,int m){int sum=n+m;return sum;}		
}

return关键字

return的两种用法:

        应用在具有返回值的类型中:

                return value:表示结束当前函数,并伴有返回值。返回到函数调用处。

        应用在没有返回值类型中(void)的函数中:

                return:表示结束当前函数,直接返回到函数调用处。

package demo;
public class Test4{public static void main(String[] args){int r=add(100,10);if(r%2==0){System.out.println(r+"是偶数");}else{System.out.println(r+"是奇数");}}public static int add(int n,int m){int sum=n+m;return sum;}		
}

总结

注意:一个类型中可以定义多个函数,函数之间属于并列关系,不可嵌套。

经验:一个函数只做一件事情

好处:1.减少代码冗余

2.提高复用性

3.提高可读性

4.提高可维护性

5.方便分工合作

嵌套调用

在一个被调用的函数中又调用了其他的函数

package demo;
public class Test5{public static void main(String[] args){System.out.println("main..start..1");m1();System.out.println("main..end..2");}public static void m1(){System.out.println("main..start..3");m2();System.out.println("main..end..4");}public static void m2(){System.out.println("main..start..5");System.out.println("main..end..6");}			
}

无穷递归

在一个函数中调用了自身

package demo;
public class Test5{public static void main(String[] args){m1();}public static void m1(){System.out.println("m1..start");m1();System.out.println("m1..end");}			
}

无穷无尽的执行m1.start...最终内存耗尽,出错。

递归

package demo;
public class Test6{public static void main(String[] args){System.out.println(jc(7));}public static int jc(int n){if(n==1){return 1;}return n*jc(n-1);}			
}

用递归解决的问题都可以用循环解决,在解决复杂问题时,使用递归方法解决更为简单。

相关文章:

  • 组合模式实战:用树形结构管理企业组织与文件系统
  • 【PyTorch】PyTorch中的非线性激活函数详解:原理、优缺点与实战指南
  • 自求导实现线性回归与PyTorch张量详解
  • 【第46节】windows程序的其他反调试手段中篇
  • ubuntu 向右拖动窗口后消失了、找不到了
  • 高通手机抓取sniffer log的方法
  • Python网络爬虫设计(二)
  • C++入门基础:命名空间,缺省参数,函数重载,输入输出
  • vue3 Ts axios 封装
  • Vscode 插件开发
  • 03_Americanas精益管理项目_StarRocks
  • 巧用ChatGPT生成适合小白的Python练习题,助力编程入门
  • 具身智能机器人学习路线全解析
  • Linux网络编程实战:从字节序到UDP协议栈的深度解析与开发指南
  • 游戏数据分析,力扣(游戏玩法分析 I~V)mysql+pandas
  • 识别法院PDF文件特定字段并插入数据库【正则表达式+本地化部署】
  • 锚定效应的应用-独立站优化价格打折显示-《认知偏差手册》
  • 少数服从多数悖论、黑白颠倒与众人孤立现象之如何应对(一)
  • 观察者设计模式详解:解耦通知机制的利器
  • AI+SWAT模型革命性应用!ArcGIS Pro流域水循环/水生态智能模拟实战;SWAT模型下载 安装 运行 建模流程
  • 张家界一铁路致17人身亡,又有15岁女孩殒命,已开始加装护栏
  • 音乐节困于流量
  • 湃书单|澎湃新闻编辑们在读的14本书:后工作时代
  • 复原展出孙吴大墓,江苏首座考古博物馆将开放
  • 制造四十余年血腥冲突后,库尔德工人党为何自行解散?
  • 西北大学副校长成陕西首富?旗下巨子生物去年净利超20亿,到底持股多少