C 语言哨兵控制循环和计数器控制循环的区别2025年1月7日 | 阅读 6 分钟 在本文中,您将了解 C 语言中 **Sentinel** 和 **Counter Controlled Loop** 的区别。但在讨论它们的区别之前,您必须了解 Sentinel 和 Counter Controlled Loop。 什么是 Sentinel-Controlled Loop?一种循环,其执行一直持续到遇到一个特定值(称为 **“哨兵值”(sentinel)**)为止,称为 **哨兵控制循环(sentinel-controlled loop)**。循环的值指示循环的终止。 终止条件在此循环中,程序将一直运行 **直到** 遇到预定的哨兵值。 特性C 语言中的 Sentinel Controlled Loop 有几个特性。Sentinel Controlled Loop 的一些主要特性如下:
示例让我们举一个例子来说明 C 语言中的 **哨兵控制循环**。 输出 Enter characters (terminate with 's'): wrgs Entered: w Entered: r Entered: g 说明 1. 头文件包含 #include <stdio.h>:包含标准输入输出库,可以使用 printf 和 scanf 等函数进行输入输出操作。 2. main 函数 int main() {... }:每个 C 程序都以此为主函数开始和结束。从这里开始执行。 3. 变量声明 使用 **'char input;'** 语法声明字符变量 input。此变量将用于存储用户输入。 4. 输出提示 printf("Enter characters (terminate with's'):");:它在控制台上打印一条消息,提示用户输入字符。用户被指示通过输入 **字符 's'** 来终止输入。 5. While 循环 while (1) {... }:这是一个无限 while 循环,意味着只要括号中的条件成立,它就会一直运行。在这种情况下,1 始终为真,因此会产生一个无限循环。 6. 用户输入 scanf("%c", &input);:此函数从用户读取一个字符并将其赋给 input 变量。 **%c** 前的空格会消耗输入缓冲区中可能剩余的任何前导空格(包括换行符)。 7. 循环退出条件 if (input == 's') { break; }:它检查输入的字符是否等于 **'s'**。如果为真,则执行 break 语句,导致程序 **退出** 循环。 8. 处理和显示输入 printf("Entered: %c\n", input);:如果输入的字符 **不是 's'**,则进行处理。然后,在控制台上打印的消息中显示输入的字符。 9. 无限循环机制 **while (1)** 结构创建一个无限循环,直到用户输入字符 **'s'**,触发 break 语句。 10. Return 语句 return 0;:它表示 main 函数的结束,并向操作系统提供 **0** 的 **退出** 状态,表示成功执行。 总之,此程序使用 while 循环连续读取用户的字符,直到用户输入字符 's',此时程序退出循环。循环输入的字符会被处理并在控制台上显示。 什么是 Counter-Controlled Loop?一种循环,它由一个循环控制变量(通常称为 **计数器**)来确定和调节 **计数器控制循环(counter-controlled loop)** 的迭代次数。 终止条件直到循环控制变量达到 **预定值**,循环才会继续。 特性 C 语言中的 Counter Controlled Loop 有几个特性。Counter Controlled Loop 的一些主要特性如下:
示例让我们举一个例子来说明 C 语言中的 **计数器控制循环**。 输出 #include <stdio.h> int main() { int m; // Loop Looptes 5 times (i takes values 1 through 5) for (m = 1; m <= 5; m++) { // Process the iteration printf("Value of Iteration - %d\n",m); } return 0; } 说明 1. 头文件包含 #include:此行包含标准输入输出库,允许使用 printf 等函数进行输出。 2. Main 函数 {... } int main():每个 C 程序都以此为主函数开始。这是执行的起点。 3. 变量声明 使用 **'int m;'** 语法声明整数变量 m。接下来的循环将使用此变量作为循环控制变量。 4. For 循环 for (m = 1; m <= 5; m++) {... }:这是一个 for 类型的计数器控制循环。
5. 循环体 **for 循环** 会执行大括号 {... } 内的代码。
6. Return 语句 return 0;:它表示 main 函数的结束,并向操作系统提供 0 的退出状态,表示 **成功执行**。 总之,此程序使用 **for 循环** 迭代五次,在每次迭代中打印循环控制变量 m 的值。循环控制变量从 1 开始,每次迭代增加 1。循环一直重复,直到变量的值达到或超过 5。 Sentinel 和 Counter Controlled Loop 的主要区别C 语言中的 Sentinel 和 Counter Controlled Loop 之间有几个主要区别。这些循环之间的一些主要区别如下:
下一主题C 语言编程测试 |
我们请求您订阅我们的新闻通讯以获取最新更新。