用电脑做网站的历史在哪里找/网站优化推广怎么做
从零开始学Java–day04–流程控制语句(二)&方法
文章目录
- 从零开始学Java--day04--流程控制语句(二)&方法
- 一、流程控制语句
- 1.死循环
- (补充)
- 2.嵌套循环
- 二、方法
- 1.概念
- 方法的优点
- 2.定义方法的格式
- 3.定义方法的两个明确
- 4.方法调用
- 形式参数和实际参数
- 5.void关键字
- 6.方法的重载
- 6.方法的递归
一、流程控制语句
1.死循环
死循环:在程序中无法通过靠自身控制终止的循环
分类:
for语句的死循环
for ( ; ; ) {循环体语句;
}
while语句的死循环
while (true) {循环体语句;
}
(补充)
- for语句的死循环执行效率优于while语句的死循环,在编写算法,设计模式,框架,计算机编程语言等,推荐使用for语句的死循环格;
- 在实际业务需求开发过程中,选择while语句的死循环,while语句的死循环代码阅读性更强,更容易理解;
2.嵌套循环
如果把 环语句放在另外一个循环语句的循环体中,那么就可以形成嵌套循环,嵌套循环既可以是 for 循环语句的嵌套,也可以是 while 循环语句的嵌套和do…while循环语句的嵌套……即各种类型的循环语句都可以作为外层循环,也可以作为内层循环;但常规的嵌套循环一般指代"for循环语句的嵌套"。
for语句的嵌套循环格式
for (外层循环的初始化语句;外层循环的循环条件语句;外层循环的迭代语句) {for (内层循环的初始化语句;内层循环的循环条件语句;内层循环的迭代语句) {内层循环的循环体语句;}
}
二、方法
1.概念
方法是面向对象部分中类或对象的行为功能的抽象,是类或对象最重要的组成部分。但从功能上来看,方法就是封装特殊功能的代码块,我们可以将main方法中多次重复操作的功能性代码抽取出来,封装到方法中,以便可以重复使用。需要注意的是,Java中的方法不能独立存在,所有的方法都必须定义在类中或接口中。
方法的优点
- 提高代码的复用性,减少代码的书写量,从而提高开发效率。
- 将程序中每个功能性的代码进行独立,从而降低代码的耦合性。
2.定义方法的格式
修饰符 返回值类型 方法名 (形参类型1 形参名1 ,形参类型2 形参名2 , ...... ,形参类型n 形参名n)
{方法体;return 返回值;
}-修饰符:目前没有学习修饰符,暂时用 public static 固定写法进行替代;
-返回值类型:方法运行结果(返回值)的数据类型,方法执行完毕后将结果数据返回到调用者方法;
-方法名:给方法起的名字;
-():形参列表,方法在执行的过程中需要使用调用者方法中的数据时,因为作用域的原因无法直接使用,需要
通过参数传递的方式将数据传递过来;
-无参数:()形参列表中什么都不写
-方法体:在原有程序中抽取的特殊功能代码;
3.定义方法的两个明确
返回值类型:明确方法返回值的数据类型
形参列表:明确形参列表中需要使用调用者方法中几个数据;明确每个数据的数据类型分别是什么
4.方法调用
方法的特点:
不调用,不执行
方法的调用格式
-
如果调用属于类的方法(暂时没有学)
类名.方法名(实参);
-
如果调用属于对象的方法(暂时没有学)
对象名.方法名(实参);
-
如果调用同一个类中的方法
直接调用,格式如下:方法名(实参);
-
输出调用,格式如下:
System.out.println(方法名(实参));
-
赋值调用,格式如下:
数据类型 变量名 = 方法名(实参);
形式参数和实际参数
形式参数:在定义方法时方法名后面()中的变量称为形式参数(简称形参)。
实际参数:在调用方法时方法名后面()中的参数称为实际参数(简称实参)。
代码如下(示例):
// 需求:定义方法实现两个整数的求和计算
public class Demo {public static void main(String[] args) {// 直接调用// getSum(3,4);// 输出调用// System.out.println(getSum(3,4));// 赋值调用int sum = getSum(3,4);//通过getSum(3,4)找到同一个类中的getSum(int a, intb),代码从第10行,直接跳到第20行,同时将3和4一起带过去System.out.println("sum = " + sum);}/*定义计算两个整数求和的方法两个明确:返回值类型:int形参列表:int a,int b*/public static int getSum(int a, int b) { //return a + b;}
}
5.void关键字
- void关键字:方法没有返回值
- void关键字注意事项:
1.在方法没有合适的返回值的时候,定义方法时返回值类型的位置不能什么都不写,需要用到void关键字进行占位;
2.当方法的返回值类型是void时,调用的方式只能是直接调用
-方法返回值类型为void时,只能使用直接调用
-方法返回值类型不是void时,推荐使用赋值调用
3.当方法的返回值类型是void时,方法后面的return关键字可以省略不写
6.方法的重载
- 方法重载:在同一个类中(或者子父类继承关系中),出现了方法名相同,形参列表不同的现象
- 重载的特点
1.必须在同一个类中(或者子父类继承关系中)
2.方法名必须相同
3.形参列表必须不同(至少满足以下一点)
①形参列表中的数据类型不同
②形参列表中形参个数不同
③形参列表中数据类型的顺序不同
代码如下(示例):
public class Demo {public static void main (String[] args) {}public static void getSum (int a , int b) {}public static void getSum (int a , double b) {}public static int getSum (double a , int b) {return 0;}public static void getSum (double a , double b) {}public static void getSum (int a , int b , int c) {}
}
6.方法的递归
- 递归:指在当前方法内调用自己的这种现象。
- 递归的分类:
递归分为两种,直接递归和间接递归。
直接递归称为方法自身调用自己。
间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法。
“求1到指定数之前的累加和”
代码如下:
// 需求:求1到指定数之前的累加和public class MethodDemo05 {public static void main(String[] args) {//计算1~num的和,使用递归完成int num = 5;// 调用求和的方法int sum = getSum(num);// 输出结果System.out.println(sum);}/*通过递归算法实现.参数列表:int返回值类型: int*/public static int getSum(int num) {/*num为1时,方法返回1,相当于是方法的出口,num总有是1的情况*/if(num == 1){return 1;}/*num不为1时,方法返回 num +(num-1)的累和递归调用getSum方法*/return num + getSum(num-1);}
}
小白求关注!!! 小白求关注!!! 小白求关注!!! (重要的事情说三遍)