JAVA基础学习——Day6(分支练习题以及函数递归)

一、分支练习题

 解析:switch中可以使用的数据类型为:String类,Enum(枚举),char类型,整形包含int,short,byte

 

//示例代码局限性: 因为只写了两个if分支,因此只能判断1-99的情况

个人代码:利用while循环取得每一个数字的每一位分别对比,这样的好处是即使给出的上限是未知的,我也能统计出来

 个人代码函数写法

 

 

 

注意1:编译器根据函数名称+参数列表来唯一定位一个函数

注意2:调用函数时,实参的类型小于形参的类型,在传参的过程中将实参隐式提升为形参类型。当然如果有更符合的函数参数类型肯定优先匹配更符合的。例如在上述的sum重载函数中加一个三个整数类型和的函数,当调用sum(10,20,30)的时候肯定优先调用新加的函数

 

 

 

思路:

 二、函数递归

1. 函数递归定义:函数在执行过程中又调用自身的过程,称之为递归——>一个函数自己调用自己就称之为递归

注意:在java中函数中调用自己,则左边出现一个圆箭头一样的

 

 2. 什么场景下能使用递归(同时满足一下三个条件一定能够使用递归)

(1)一个大问题可以拆分为多个子问题

(2)拆分后的子问题和原问题,除了数据规模不同之外,解决的思路完全相同

(3)存在递归终止条件(拆分子问题是有限的,不可能无限拆分下去)

3. 如何写出递归函数

一定要注意方法的语义(定义出来的这个递归函数到底要解决什么问题),假设这个方法已经实现好了,我们只需要利用这个方法辅助我们解决问题即可

4. 例题(递归实现)

例题1:求任意正整数N的阶乘问题

 例题2:

 5. 递归函数的微观运行(以上述例子中的fator(5)为例子)

具体图示在part1 6.2文件中

逻辑图示如下

 

 

 三、IDEA中的调试运行

1. 打断点:

(1)方法:在如图所示的红色区域点击出现红色圆点即表示在当前语句打了个断点。打断点后的第一个语句会出现标红(如下图所示)

(2)断点含义理解(注意:实际上IDEA中断点和断点后第一句代码是处于一行之内)

断点前代码

断点 (代码被截断在这个地方)     

断点后第一句代码(被标红的部分)

后续代码

即为:在调试模式下,程序会暂停这个断点处,等待指示

 2. 进入调试运行模式:

(1)方法一:快捷键shift + F9.

(2)方法二:点右上角的小虫子

(3)方法三:右键左边代码上方的绿色运行箭头,第二个就是debug模式

 3. 调试模式

(1)调试的监视窗口

 (2) 函数调用栈

 (2)几个按钮的解读

A. step over

 往后一句一句的执行,遇到函数的部分自动跳过(除非函数内部有断点,不得不停止)。如果通过step into进入某一个函数内部执行,那么再点击step over则在函数体代码一步一步执行

B. step into,

遇到函数的部分点击这个按钮会进入函数体内部代码执行,在函数体内部点击则一句一句往后执行

C. 

从断点处恢复程序运行,直到下一个断点为止,如果后面没有断点了,则运行结束(这个就相当于是断点之间执行了多条step over语句) 

 四、递归练习题

1. 例题1:

 2. 例题2:

 

 

 3. 例题3:(重点)

 ​​​​​​​ 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
函数是一段封装了特定功能的代码块,可以重复调用。无论是编写程序还是解决问题,函数都是非常重要的工具。了解并熟练使用函数对于精通Python的基础篇来说十分重要。 在Python中,函数的定义以关键字"def"开头,后面是函数的名称和参数列表。参数列表用于接收调用函数时传递的参数。在函数体内部,通过缩进来组织函数代码,并使用return语句返回函数的结果。 函数的优势体现在以下几个方面: 1. 代码的重用性:可以将一段常用的代码封装成函数,以便在其他地方重复使用,提高了代码的可读性和可维护性。 2. 简化程序结构:函数可以将复杂的问题分解为多个简单的小问题,使程序结构更加清晰,易于理解和修改。 3. 提高代码的可测试性:函数是模块化的单元,可以独立测试和验证,减少了程序出错的可能性。 在编写函数时,要注意以下几点: 1. 函数名称要有意义,能够表达函数的功能。 2. 参数列表可以根据需要进行定义,可以有多个参数,也可以没有参数。 3. 函数的代码要尽量简洁、清晰,避免冗余和重复的部分。 4. 在函数内部,可以使用局部变量来保存中间结果,避免对全局变量的过多依赖。 总之,函数是编程中不可或缺的组成部分,掌握了函数的使用,就掌握了解决问题的利器。在后续的学习中,我们将进一步学习函数的高级应用,如函数递归调用、函数的参数传递等。通过不断的实践和练习,相信不久的将来,我们就能够精通Python的基础篇。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值