递归(recursion)和环(loop)的区别

递归和循环的主要区别在于,递归是一种在同一函数中调用函数的机制,而循环是一种控制结构,它有助于反复执行一组指令,直到给定的条件为真。...

递归和循环的主要区别在于,递归是一种在同一函数中调用函数的机制,而循环是一种控制结构,它有助于反复执行一组指令,直到给定的条件为真。

递归和循环是两个编程概念。这两种技术都有助于开发小型到复杂的程序。

覆盖的关键领域

1.什么是递归-定义,功能2.什么是循环-定义,功能3.递归和循环的区别是什么-关键区别的比较

关键术语

执行While循环,For循环,循环,递归,While循环

递归(recursion)和环(loop)的区别

什么是递归(recursion)?

当函数在函数中调用自身时,称为递归。递归程序的一个例子是计算阶乘。

n!=n*(n-1)!,如果n>0

n=1,如果n=0;

Difference Between Recursion and Loop

Figure 1: Factorial Program in Java

根据上面的程序,它创建了一个阶乘对象。然后,使用该对象调用factorial方法。然后,该方法得到值4。接下来,执行else部分。然后它称为阶乘(3)。然后,执行else部分。它称为阶乘(2)。接下来,执行else部分。它调用factorial(1),else部分再次执行。它称为阶乘(0)。现在n是0。它返回1。最后,返回1x2x4x4=24,值显示在屏幕上。同样地,阶乘函数一次又一次地调用自己。

什么是环(loop)?

有时需要重复执行一段代码。编程语言提供一种称为循环的控制结构来执行一组指令。循环在块内逐个执行语句。有三种类型的循环:while循环、for循环和do while循环。此外,迭代也涉及循环。

while循环

while循环包含一个测试表达式。如果该表达式为true,则执行while循环中的语句。在语句的末尾,它再次检查测试表达式。然后,此过程重复,直到测试表达式变为false。当测试表达式为false时,while循环终止。然后控件传递到while循环之后的第一个语句。

Difference Between Recursion and Loop_Figure 2

Figure 2: Program with while loop

在上面的程序中,x是5。它小于10。因此,它将打印。然后,x值递增。现在,x是6,它也小于10;因此,它将打印。然后x值再次递增。现在x是7,这个过程重复。当x为10时,条件为false,循环终止。

for循环

For循环包含初始化、测试表达式和更新。初始化表达式执行一次。然后,它计算测试表达式。如果为true,则执行for循环中的语句。在循环结束时,它计算更新的表达式。因此,此过程将重复,直到测试表达式为false。如果为false,则for循环终止。然后,控件传递到for循环之后的下一个语句。

Main Difference - Recursion vs Loop

Figure 3: Program with For Loop

在上面的for循环中,x值是1。它小于5。因此,将打印该值。然后x值增加1。现在x值是2。它也小于5。因此,它将打印。同样,x值增加1。现在,x是3。这个过程重复。当x为6时,测试条件变为false,循环终止。

执行while循环

Do while循环类似于while循环,但它在执行loop语句后检查条件。因此,无论条件是真是假,循环至少执行一次。这里,在循环执行之后检查条件。如果条件为真,循环语句将再次执行。此过程重复,直到条件变为假。

Difference Between Recursion and Loop_Figure 4

Figure 4: Program With Do While Loop

x值最初是5。do while循环执行并打印值5。然后,x变为6。它小于10。因此,6将打印。接下来,x变成7,也小于10,这个过程重复。当x为9时,打印值。但是,当x变为10时,条件变为假。因此,循环终止。

例如,假设x最初是20。它将打印20。然后x将递增,x变为21。测试条件为false。因此,它将终止循环。值20大于10,测试条件为假。但是,循环只执行一次。因此,do while循环至少执行一次。

递归(recursion)和环(loop)的区别

定义

递归是在同一函数中调用函数的方法。相反,循环是一种控制结构,允许在程序中重复执行一块代码。这些定义包含了递归和循环之间的根本区别。

速度

速度是递归和循环的主要区别。递归执行比较慢。然而,循环的执行速度比递归快。

堆栈

在递归中,调用函数时,堆栈用于存储局部变量。但是,循环不使用堆栈。

条件

如果没有终止条件,它可以是无限递归。但是,如果条件从未变为假,它将是一个无限循环。这是递归和循环之间的另一个区别。

空间复杂性

此外,递归程序的空间复杂度高于循环。

代码易读性

递归和循环的另一个区别是,具有递归的程序比具有循环的程序可读性更好。

结论

递归和循环的区别在于,递归是一种在同一函数中调用函数的机制,而循环是一种控制结构,允许反复执行一组指令,直到给定的条件为真。

引用

1、“递归(计算机科学)”,维基百科,维基媒体基金会,12,9月2018日,可在这里。2。Java循环控制。“Www.tutorialspoint.com,可在此处获得。 2.“Java循环控制”,Www.tutorialspoint.com,

  • 发表于 2021-07-01 05:19
  • 阅读 ( 290 )
  • 分类:IT

你可能感兴趣的文章

电循环(electrocyclic)和环加成反应(cycloaddition reaction)的区别

...反应是重排反应,而环加成反应是加成反应。 电环反应和环加成反应都是有机化学反应的形式,在有机合成化学化合物中起着重要作用。它们具有不同的作用机制,因此,我们可以将电环反应和环加成反应分为重排反应和加成...

  • 发布于 2020-09-18 14:05
  • 阅读 ( 638 )

环丁烷(cyclobutane)和环丙烷(cyclopropane)的区别

环丁烷和环丙烷的主要区别在于环丁烷是一种环结构,其中有四个碳原子,而环丙烷是环结构中有三个碳原子的环状结构。 环丁烷和环丙烷是两种具有环状结构的有机化合物,碳原子排列成一个循环。环丁烷和环丙烷的区别...

  • 发布于 2020-10-13 17:31
  • 阅读 ( 307 )

石蜡(paraffinic)和环烷(naphthenic)的区别

...要区别 2. 什么是石蜡 3. 什么是环烷烃 4. 并列比较-石蜡和环烷烃的表格形式 5. 摘要 什么是石蜡(paraffinic)? 石蜡一词是指含有石蜡的物质。石蜡是烷烃。它们是无环饱和烃。此外,烷烃的通式为CnH2n+2。碳原子之间只有单键,分...

  • 发布于 2020-10-16 05:16
  • 阅读 ( 299 )

氯苯(chlorobenzene)和环己酰氯(cyclohexyl chloride)的区别

氯苯和环己酰氯的主要区别在于氯苯有一个离域电子云,而环己酰氯中没有离域电子云。 氯苯有一个苯环,苯环上有一个氯原子。在这里,氯原子取代了环中的一个氢原子。因此,苯环的离域电子云也存在。然而,环己烷分...

  • 发布于 2020-10-17 02:30
  • 阅读 ( 220 )

for循环(for loop)和foreach循环(foreach loop)的区别

关键区别–for循环与foreach循环 for循环和foreach循环都是用于重复语句块的控制结构。在程序设计中有重复控制结构来反复执行一个语句块。一种常见的控制结构是回路控制。for循环是用于迭代的控制流结构,允许代码重复执...

  • 发布于 2020-10-19 07:26
  • 阅读 ( 1001 )

递归(recursion)和迭代(iteration)的区别

关键区别——递归与迭代 递归和迭代可以用来解决编程问题。使用递归或迭代来解决问题的方法取决于解决问题的方式。递归和迭代的关键区别在于递归是一种在同一个函数中调用函数的机制,而迭代是重复执行一组指令,...

  • 发布于 2020-10-19 23:58
  • 阅读 ( 275 )

兽群(herd)和环抗扰度(ring immunity)的区别

群体免疫和环免疫的关键区别在于,当一个群体中有相当一部分人接种了疫苗时,群体免疫就产生了;而在传染病爆发周围的指定区域内的所有易感个体都接种了疫苗时,则产生了环免疫。 接种疫苗可提高人体免疫力。一旦...

  • 发布于 2020-10-25 06:01
  • 阅读 ( 201 )

环己烷(cyclohexane)和环己烯(cyclohexene)的区别

环己烷和环己烯的关键区别在于环己烷是饱和烃,而环己烯是不饱和烃。 通过将不同的元素与碳原子结合而成的各种有机化合物。环己烷和环己烯是仅由碳原子和氢原子组成的碳氢化合物。碳氢化合物有两种形式:芳香烃和...

  • 发布于 2020-11-03 18:41
  • 阅读 ( 496 )

正丁烷(n-butane)和环丁烷(cyclobutane)的区别

正丁烷和环丁烷的主要区别在于正丁烷是脂肪族物质,而环丁烷是环状化合物。 丁烷是一种有四个碳原子的有机化合物,它是烷烃化合物,因为它只有一个共价化学键(没有双键或三键)。这四个碳原子可以得到不同的排列...

  • 发布于 2021-03-04 20:05
  • 阅读 ( 1122 )

什么是递归?如何使用它?

递归是一个有趣的编程概念,但学习起来有点棘手。递归只是指重复自身的东西。如果你想看到一个厚脸皮的递归例子,试着在Google上搜索递归。您将发现一个复活节彩蛋,其中搜索结果建议是递归的。另一方面,如果您想学习...

  • 发布于 2021-03-29 05:32
  • 阅读 ( 226 )
g4shb72q5
g4shb72q5

0 篇文章

相关推荐