C语言for循环语句的用法(非常详细)

embedded/2025/3/12 9:36:05/

在 C语言中,除了 while 和 do while,使用 for 语句也可以实现循环结构。

C语言for循环的基本用法

for 循环语句的一般形式如下:

for(表达式1;表达式2;表达式3)
{语句块;
}

有以下几点说明:

  • for 是循环结构中的关键字之一。
  • 表达式 1 通常用于给循环变量赋初值。当然,也允许在 for 语句外给循环变量赋初值,此时可以省略此表达式。
  • 表达式 2 通常是循环检验的条件,用来决定是否继续执行 for 后紧跟的语句块,一般是关系表达式和逻辑表达式。表达式 2 也可以省略,要是省略表达式 2,这样的循环就会变成无限循环。
  • 表达式 3 通常可用来修改变量的值,一般是赋值语句或自增/自减表达式。如果在语句块中写修改变量的语句,那么表达式 3 也可以省略。
  • 语句块可以是一条语句,也可以是任意合法的复合语句(复合语句包含{})。
  • 各表达式之间用分号隔开。

从一般形式来看,每条 for 语句包含 3 个用分号隔开的表达式。这 3 个表达式用一对圆括号标识,其后紧跟着语句块。

for语句的执行流程如下图所示:

图 1 for语句的执行流程图

通过图 1 和上面对 for 语句的介绍可知,for语句里有 3 个表达式,它的执行步骤如下:

  • 步骤 1:计算表达式 1 的值;
  • 步骤 2:计算表达式 2 的值,若结果值是真值,执行步骤 3;若结果值是假值,执行步骤 5;
  • 步骤 3:执行一次 for 后紧跟的语句块;
  • 步骤 4:计算表达式 3 的值,执行步骤 2;
  • 步骤 5:结束循环,执行 for 语句之外的语句。

for 语句简单的应用形式如下:

for(循环变量赋初值;循环条件;循环变量) {语句块;}

【实例】用 for 语句计算 1~20 的和。具体代码如下:

#include<stdio.h>
int main()
{int number;  // 起始数字为1int sum = 0; // 初始时和为0for (number = 1; number <= 20; number++)  //循环数字1~20{sum = sum + number; // 从1开始求和}printf("1~20的和等于%d\n", sum); //输出最后相加的结果return 0; //程序结束
}

运行结果如下:

1~20的和等于210

for循环的变体

通过前面的学习可知,for 语句的一般形式中有 3 个表达式。在实际的程序编写过程中,这 3 个表达式可以根据实际情况省略,接下来对不同情况进行讲解。

1) for语句中省略表达式1

for 语句中第一个表达式的作用是对循环变量设置初值。如果省略 for 语句中的表达式 1,就需要在执行 for 语句之前给循环变量赋值。

for 语句中省略表达式 1 的示例代码如下:

int number = 1;
for (; number <= 20; number++) { // 省略表达式1sum = sum + number;
}

省略表达式 1 时,其后的分号不能省略。

2) for语句中省略表达式2

如果省略表达式 2,即不判断循环条件,则循环将无止境地进行下去,即默认表达式 2 始终为真。例如:

int number;
for (number = 1; ; number++) { // 省略表达式 2sum = sum + number;
}

上述 for 语句中表达式 2 是空缺的,这样就相当于使用 while 语句,代码如下:

int number = 1;
while (1) { // 循环条件永远为真sum = sum + number;number++;
}

从 while 语句的判断条件可以看出,如果表达式 2 空缺,则程序将无限循环下去。

3) for语句中省略表达式3

for 语句中的表达式 3 也可以省略。例如:

int number;
for (number = 1; number <= 20;) { // 省略表达式3,但通常这里会是number++sum = sum + number;
}

上面这段代码没有改变 number 变量值的代码,循环将会无止境地进行。如果想程序循环能正常结束,就应将代码改为如下形式:

int number;
for (number = 1; number <= 20;) { // 省略表达式3,但通常这里会是number++sum = sum + number;number++; // 这行代码通常需要在循环体中,以避免无限循环
}

修改代码之后,程序循环就能正常结束。

for语句中逗号的应用

在 for 语句中的表达式 1 和表达式 3 处,除了可以使用简单的表达式,还可以使用逗号表达式,即包含一个以上的简单表达式,中间用逗号分隔。

例如,在表达式 1 处为变量 iSum 和 iCount 设置初值,代码如下:

for (isum = 0, icount = 1; icount < 100; icount++) {isum = isum + icount;
}

或者执行两次循环变量自加操作,代码如下:

for (icount = 1; icount < 100; icount++, icount++) {isum = isum + icount;
}


http://www.ppmy.cn/embedded/171994.html

相关文章

跨越时空的对话:图灵与GPT-4聊AI的前世今生

&#xff08;背景&#xff1a;虚拟咖啡厅&#xff0c;图灵身着1950年代西装&#xff0c;端着一杯热茶&#xff0c;GPT-4以全息投影形态坐在对面&#xff09; 图灵&#xff08;喝了口茶&#xff09;&#xff1a;“听说你能写诗&#xff1f;我当年在布莱切利园破解Enigma时&…

游戏对战数据分析

下载和数据整合部分已经完毕 源数据和说明链接如下&#xff1a;如有密码 9527 百度网盘 请输入提取码 放一部分代码&#xff0c;还没完全写完 import requests from lxml import etree from urllib import parse import json import time import math import pandas as pd f…

基于STM32单片机物联网智能浇花系统设计

引言 在现代生活中&#xff0c;随着科技的进步和物联网技术的发展&#xff0c;智能家居系统逐渐进入大众的视野。智能浇花系统作为其中的一个重要应用&#xff0c;可以帮助用户在繁忙的生活中更好地照顾植物。本文将介绍如何基于STM32单片机设计一个智能浇花系统&#xff0c;该…

macOS 终端优化

macOS 安装、优化、还原、升级 Oh My Zsh 完全指南 &#x1f680; Oh My Zsh 是 macOS 终端增强的利器&#xff0c;它能提供强大的自动补全、主题定制和插件支持&#xff0c;让你的终端更高效、更炫酷。本文将全面介绍 如何安装、优化、还原、重新安装和升级 Oh My Zsh&#x…

我与DeepSeek读《大型网站技术架构》(9) - 淘宝网的架构演化案例分析

目录 淘宝网的架构演化案例分析初始阶段&#xff08;2003年&#xff09;业务驱动重构&#xff08;2004年&#xff09;去商业化解耦&#xff08;2010年后&#xff09;成果与启示相关开源中间件Tair&#xff08;分布式缓存&#xff09;TFS&#xff08;Taobao File System&#xf…

C语言:6.22练习题数组解答

#include <stdio.h> #include <string.h> // 用于 strlen() int main() {char a[100];int j 0;// 从用户输入读取字符串printf("请输入一个字符串: ");fgets(a, sizeof(a), stdin);// 遍历字符串中的每个字符for (int i 0; i < strlen(a); i) {if (…

行为模式---状态模式

概念 状态模式是一种行为模式&#xff0c;用于在内部状态改变的时候改变其行为。它的核心思想就是允许一个对象在其内部状态改变的时候改变它的行为。状态模式通过将对象的状态封装成独立的类&#xff0c;并将其行为委托给当前的状态对象&#xff0c;从而使得对象行为随着状态…

在 CentOS 上,常用几种方法来确保 Python 脚本在断开终端后继续运行

在 CentOS 上&#xff0c;你可以使用以下几种方法来确保 Python 脚本在断开终端后继续运行&#xff1a; 1. 使用 nohup 命令 nohup 命令可以让进程在终端关闭后继续运行。 nohup python main.py > output.log 2>&1 &nohup&#xff1a;忽略挂断信号&#xff0c…