C 语言 for vs. while 循环

2025 年 5 月 13 日 | 阅读 7 分钟

理解 for 循环和 while 循环的区别

C++ 中的迭代语句,如 for 循环、while 循环和 do-while 循环,允许重复执行一组指令,直到条件为真,并在条件为假时终止。迭代语句可以有预定义条件,如 for 循环,或开放式条件,如 while 循环。

在 C++ 中,隐含了各种 'for' 循环变体,以增加语言的适用性、功能和灵活性。例如,for 循环允许我们通过在循环内部使用多个变量来控制循环,以及使用 'for' 循环的收敛函数。相比之下,我们不能对 while 循环使用许多变体;它必须使用标准语法。

for 循环和 while 循环之间存在一些显著差异,下面将通过对比图进行解释。

For vs. While loop in C

For Loop 定义为

Java 中有两种 for 循环。第一种是“传统”形式,第二种是“for-each”形式。

最通用的 for 循环语句形式。

  • 初始化: for 循环的循环控制变量仅在循环的第一次迭代期间初始化一次。在这里初始化循环控制变量;如果循环变量在程序中再也不使用,并且只用作循环的控制变量,则它既在 'for' 循环中声明又在其中初始化。
  • 条件: 'for' 循环的条件在每次循环迭代时执行。
  • 迭代语句是递增或递减循环控制变量的表达式。

当执行循环时,首先执行初始化条件,然后进行条件检查。如果满足条件,则执行循环体,然后执行迭代语句。然后再次检查条件,以确定循环是否会进一步迭代或终止。

在 Java 中,初始化和迭代语句都可以包含多个语句。每个语句用逗号分隔;在 Java 中,逗号是分隔符;在 C++ 中,逗号是一个运算符,可以用于任何有效表达式。

for-each 循环的语法

"for-each" 形式是 for 循环的一个更高级的版本。for-each 循环采用以下通用形式。

"type" 参数指定迭代变量的类型,后面跟着迭代变量。集合变量中的元素将被传递给迭代变量。类型必须与集合变量中元素的类型匹配。for 循环的 for-each 形式自动化了循环从开始到结束的迭代,按顺序访问值。

示例

可以使用多种类型的集合与 for 循环一起使用。让我们以数组作为集合来讨论。

输出

value in c 10
value in c 20
value in c 30
value in c 40
value in c 50
value in c 60
additon of array elements is 210

在这种情况下,'c' 是一个迭代变量;它一个接一个地接收数组 [] 中的值,从数组的最低索引到最高索引。循环迭代直到检查完数组中的所有元素。可以使用 "break" 在中间中断循环。另一方面,迭代变量的变化不会影响数组,因为它是只读变量。

While loop 定义为

while 循环是 C++ 和 Java 中最基本的循环。while 循环在 C++ 和 Java 中的操作类似。

语法

下面是 while 循环的声明

while 循环首先检查条件,然后执行语句,直到 while 循环中的条件为真。在 while 循环中,条件可以是任何布尔表达式。当表达式返回非零值时,条件为真;当它返回零值时,条件为假。

如果条件为真,循环将自我迭代;如果条件为假,控制将传递到循环之后的代码行。循环体或语句可以是空语句、单个语句或语句块。

示例

让我们看看 while 循环是如何工作的。下面示例中的代码将从 1 打印到 10。

输出

n=1
n=2
n=3
n=4
n=5
n=6
n=7
n=8
n=9
n=10

在这种情况下,'n' 的初始值是 0,这使得 while 循环中的条件为真。然后控制进入 while 循环的循环体,其中 'n' 的值根据第一个语句进行递增。

'n' 的值被打印,然后控制返回到 while 循环中的条件,此时 'n' 的值为 1,再次满足条件,循环体再次执行。这会持续进行,直到条件变为假,此时循环终止。

与 'for' 循环一样,'while' 循环可以在循环的开始处初始化控制变量,即在条件检查期间。

在循环的顶部,初始化了控制变量 'ch',并检查了循环的条件。

注意:如果循环体中只有一个语句,无论是 for 循环还是 while 循环,都不需要花括号。

在 C 中,for 循环和 while 循环有什么区别?

参数For 循环While 循环
声明for(initialization ; condition ; iteration ) {
// for 循环体
}
初始化
while ( condition ) {
statements;
// 循环体
}
格式。在循环的顶部,写有初始化、条件检查和迭代语句。在循环的顶部,只进行初始化和条件检查。
用法。'for' 循环仅在使用已知迭代次数时使用。当迭代次数未知时,使用 'while' 循环。
条件。如果 'for' 循环中不包含条件,则循环将无限迭代。如果 'while' 循环中不包含条件,则会发生编译错误。
初始化'for' 循环中的初始化永远不会重复。如果在 while 循环中的条件检查期间执行了初始化,则每次循环迭代都会执行初始化。
迭代断言由于 'for' 循环中的迭代语句写在顶部,因此它仅在循环中的所有语句执行完毕后执行。“while”循环中的迭代语句可以写在循环中的任何位置。

for 和 while 循环之间的主要区别

  • 初始化、条件检查以及迭代变量的递增或递减都只在循环语法中明确进行。相反,在 while 循环中,我们只能在循环语法中初始化和检查条件。
  • 当我们知道在循环执行中必须发生的迭代次数时,我们使用 for 循环。另一方面,如果我们不知道必须发生多少次迭代,我们使用 while 循环。
  • 如果在 for 循环中不包含条件语句,循环将无限循环。相反,如果在 while 循环中不包含条件语句,将导致编译错误。
  • for 循环语法中的初始化语句仅在循环开始时执行一次。如果 while 循环的语法包含初始化语句,则每次循环迭代都会执行初始化语句。
  • for 循环中的迭代语句将在 for 循环体之后运行。相反,由于迭代语句可以写在 while 循环体内的任何位置,因此可能有一些语句在 while 循环体内的迭代语句执行后执行。

结论

因此,循环是必须按特定顺序使用的命令集合。如果循环结构不正确,程序将显示语法错误。循环运行以获得结果或满足一个或多个条件。它是所有编程语言的基础。

在执行过程中,循环结构会提出一个问题,并一直执行直到答案令人满意。同一个问题会被一次又一次地提出,直到应用了新的语句。循环过程会无限持续,直到程序达到断点。如果未达到断点,程序将崩溃。

for 和 while 循环都是条件语句。for 循环是一个单行命令,将重复执行。while 循环可以是单行或包含多个命令来满足单个条件。

for 循环和 while 循环在计算机语言中对于获得结果都很重要。如果命令语法正确,则满足条件。

for 循环和 while 循环都是迭代语句,但它们具有不同的特征。for 循环在循环体顶部声明所有内容(初始化、条件、迭代)。相反,在 while 循环的循环体顶部只有初始化和条件,并且迭代可以写在循环体内的任何位置。