当前位置: 首页 > news >正文

for循环详解与实战技巧

目录

一、for循环语法

二、for循环执行流程

流程图表示:

三、for循环实践示例

示例:在屏幕上打印1~10的值

四、while循环与for循环对比

for循环和while循环都包含三个关键部分:

两者的主要区别在于代码组织方式:

五、练习题

练习1:计算1~100之间3的倍数的数字之和

基础实现:

优化版本(直接生成3的倍数,减少循环次数和判断):


一、for循环语法

for循环是C语言中最常用的循环结构,其基本语法形式如下:

for(表达式1; 表达式2; 表达式3)语句;  // 如果循环体包含多条语句,需使用大括号{}

各表达式的作用:

  • 表达式1:循环变量初始化(仅在循环开始时执行一次)

  • 表达式2:循环继续条件判断(每次循环前检查)

  • 表达式3:循环变量调整(每次循环后执行)


二、for循环执行流程

for循环的执行流程可以用以下步骤描述:

  1. 执行表达式1(初始化循环变量)

  2. 检查表达式2(循环条件):

    • 如果结果为真(非0),继续执行循环体

    • 如果结果为假(0),结束循环

  3. 执行循环体语句

  4. 执行表达式3(调整循环变量)

  5. 返回步骤2继续判断

流程图表示:

注意:在整个循环过程中,表达式1只执行一次,而表达式2、循环体和表达式3会重复执行。


三、for循环实践示例

示例:在屏幕上打印1~10的值

#include <stdio.h>int main()
{int i = 0;for(i = 1; i <= 10; i++){printf("%d ", i);}return 0;
}

运行结果


四、while循环与for循环对比

for循环和while循环都包含三个关键部分:

  1. 循环变量初始化

  2. 循环继续条件判断

  3. 循环变量调整

两者的主要区别在于代码组织方式:

  • for循环:三个部分集中在一起,结构清晰,便于维护

  • while循环:三个部分分散在代码中,当代码量较大时可能不够直观

因此,在大多数情况下,特别是循环次数明确时,for循环是更优的选择。


五、练习题

练习1:计算1~100之间3的倍数的数字之和

基础实现:

#include <stdio.h>int main()
{int i = 0;int sum = 0;for(i = 1; i <= 100; i++){if(i % 3 == 0)sum += i;}printf("%d\n", sum);return 0;
}

优化版本(直接生成3的倍数,减少循环次数和判断):

#include <stdio.h>int main()
{int i = 0;int sum = 0;for(i = 3; i <= 100; i += 3){sum += i;}printf("%d\n", sum);return 0;
}

        优化版本通过直接从3开始,每次增加3的方式,避免了不必要的循环迭代和条件判断,提高了代码效率。

http://www.dtcms.com/a/326811.html

相关文章:

  • Edit Distance
  • 传统制造业减人不减效:一线用工优化的3个投入方向,用对工具比盲目裁员更关键
  • 对抗样本攻击检测与防御
  • 车载软件架构 --- 车辆量产后怎么刷写Flash Bootloader
  • BLE ADV
  • special topic 9 (2) and 1011(1)division one
  • 深入解析Windows系统下UDP绑定失败的原理与系统级解决方案
  • 数据库三范式入门教程
  • Windows11 PowerShell CMD
  • Ascend DrivingSDK 中的 modulated_deform_conv2d(一)
  • GESP2023年9月认证C++一级( 第三部分编程题(1)买文具)
  • MATLAB实现遗传算法求解路网路由问题
  • PTE之路--03文
  • 【08-神经网络介绍】
  • 北京-4年功能测试2年空窗-报培训班学测开-第七十三天-投递简历-[特殊字符][特殊字符]
  • Linux驱动学习day27天(USB驱动理论部分)
  • SSR-code 项目复刻与3D模型生成实现
  • nomachine的安装和使用
  • 华清远见25072班C语言学习day6
  • 操作系统1.5:操作系统引导
  • 101. 孤岛的总面积
  • 下一代防火墙组网
  • 晓知识: 动态代理与静态代理的区别
  • Android模块化架构深度解析:从设计到实践
  • 强联通分量(重制版)
  • 环境配置-拉取NVIDIA Docker镜像时出现401Unauthorized错误
  • 数据填报是什么?数据填报工具有哪些?
  • 黑马程序员mysql基础篇笔记
  • 自定义switch with icon
  • 使用Pytest进行接口自动化测试(三)