从零开始学Java--day04--流程控制语句(二)&方法

从零开始学Java–day04–流程控制语句(二)&方法


一、流程控制语句

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);
	}
}

小白求关注!!! 小白求关注!!! 小白求关注!!! (重要的事情说三遍)

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jwwy*

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值