再学C语言20:循环控制语句——for循环

news2024/9/25 3:26:40

在while循环中,建立一个重复执行固定次数的循环涉及到3个动作:

1)初始化一个计数器

2)计数器与某个有限的值比较

3)每次执行循环,要在循环体中让计数器的值递增

其中,计数器的初始化在循环之外,比较在while后面,计数器递增在循环内

与while循环相比,for循环可以把这3个动作(初始化、比较、递增)放在一起

/* 两种写法可以实现相同的功能 */
// 写法一:使用while循环
int i = 0;
while(i < 10)
{
    function();
    i++;
}

// 写法二:使用for循环
int i;
for(i = 0; i < 10; i++)
{
    function();
}

一、for循环

关键字for之后的圆括号中包含三个表达式,由两个分号隔开:

表达式一:进行初始化,for循环开始时执行一次

表达式二:判断条件,每次执行循环前执行一次,若表达式为假,则循环结束

表达式三:进行改变(更新),每次循环结束时进行计算

三个表达式都是完整的表达式,任意一个表达式的副作用都在程序求下一个表达式的值之前生效

二、for循环的灵活性

1)使用增量运算符或减量运算符

示例代码:

/* test of for */
#include <stdio.h>
int main(void)
{
    int i;
    int sum;
    for(i = 100; i > 0; i--)
    {
        sum += i;
    }
    printf("The result is %d \n", sum);
    return 0;
}

运行结果:

1ef3df0215fb4e258b0d9debb61bb23f.png

2)让计数器依次加2、减5等等

...
for(i = 0; i < 100; i = i + 2)
...

...
for(i = 100; i > 0; i = i - 5)
...

3)用字符代替数字(因为字符是以整数形式存储的)

...
for(i = 'a'; i < 'z'; i++)
...

4)判断迭代次数之外的条件

...
for(i = 0; i * i < 100; i++)
...

5)改变数量增长的方式

...
float i;
for(i = 0; i < 100; i *= 1.1)
...

6)表达式三可以使用任何形式的合法表达式

...
int i, j;
j = 0;
for(i = 0; j < 100; j = (i++ * 2) + 1)
...

7)让一个或多个表达式为空(但是不要遗漏分号,且循环中要包含能使循环结束的语句)

...
int i;
for(i = 0; i < 100;)
{
    i++;
}
...

8)表达式一也不必初始化一个变量,可以是某种只需要执行一次的其他语句

...
int num = 0;
for(printf("Enter a number: \n"); num != 1; )
{
    scanf("%d", &num);
}
printf("You guessed it! \n");
...

9)循环中的动作可以修改循环表达式的参数

...
int i;
int num
for(i = 0; i < 100; i += num)
{
    if(i < 50)
    {
        num = 1;
    }
    else
    {
        num = 2;
    }
}
...

for循环是一个入口条件循环,是否再次执行循环的决定是在循环执行之前作出,因此有可能循环依次也不执行

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/130166.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【pandas】教程:6-如何计算摘要统计

Pandas 计算摘要统计 本节使用的数据为 data/titanic.csv&#xff0c;链接为 pandas案例和教程所使用的数据-机器学习文档类资源-CSDN文库 加载数据 import pandas as pdtitanic pd.read_csv("data/titanic.csv") titanic.head()PassengerId Survived Pclass \…

#Z0424. 树上的旅行

题目 Description 给出一棵有N个结点的树&#xff0c;给出Q个询问&#xff0c;求结点xj过结点K到节点yj的最短距离 Format Input 第一行一个数n 接下来共有n-1行&#xff0c;三个数u,v,len表示u和v之间存在一条边长为len 再给你Q&#xff0c;K。代表有Q个询问&#xff0…

视频 | bedtools使用介绍1

点击阅读原文跳转完整教案。基因组中的趣事&#xff08;二&#xff09;- 最长的基因2.7 million&#xff0c;最短的基因只有8 nt却能编码基因组中的趣事&#xff08;一&#xff09;&#xff1a;这个基因编码98种转录本1 Linux初探&#xff0c;打开新世界的大门1.1 Linux系统简介…

10000+条数据的内容滚动功能如何实现?

遇到脑子有问题的产品经理该怎么办&#xff1f;如果有这么一个需求要你在一个可视区范围内不间断循环滚动几千上万条数据你会怎么去实现&#xff1f; 且不说提这个需求的人是不是脑子有问题&#xff0c;这个需求能不能实现&#xff1f;肯定是可以的&#xff0c;把数据请求回来渲…

2022蓝桥杯省赛C++A组初尝试

前言 耗时三个半小时&#xff0c;看看自己不懂的有多少&#xff0c;以便明确后续备赛2023方向 耗时3个半小时&#xff0c;只拿了18分&#xff0c;没学过&#xff0c;时间再多也做不出来&#xff0c;有奥数那感觉了 据说蓝桥杯省3得做对 2填空 2大题&#xff08;30分&#x…

PMP®项目管理|不同场景使用不同沟通方式

不同沟通方式的确有适用场景和不适用场景。无效沟通的重要原因之一就是错误选择沟通方式。 我们会在工作中用到很多沟通方式&#xff0c;每种沟通方式都有适用的场合&#xff0c;也有不适用的场合&#xff0c;错误选择将使沟通变得低效甚至无效。 沟通方式主要有三种&#xf…

一百种语言的LOVE

2023年快要到来啦&#xff0c;很高兴这次我们又能一起度过~ 目录 一、前言 二、详细介绍 三、效果展示 四、代码编写 index.html script.js style.css 五、获取代码 需要源码&#xff0c;可以私信我(⊙o⊙)&#xff1f;关注我&#xff1f; 一、前言 时光荏苒&#xf…

vue element-ui 手机号校验 验证码校验 获取验证码倒数60秒无样式实现

这段时间被迫搞前端搞裂开了&#xff0c;记录一下手机号验证码校验登录的极简无样式前端实现 巨丑&#xff01;希望大佬们不介意 下面是先演示效果 点击登陆后显示校验信息 输入手机号点击获取验证码 输入符合校验的内容后点击登录提示成功 无后端交互&#xff01;&#…

从档案信息管理到档案知识管理

今年6月份的时候&#xff0c;笔者发过一篇文章《DIKW模型在档案信息资源开发中的应用》&#xff0c;简要阐述了知识管理领域非常著名的DIKW模型&#xff0c;即从数据&#xff08;Data&#xff09;→信息&#xff08;Information&#xff09;→知识&#xff08;Knowledge&#x…

基于SpringBoot和微信小程序的餐馆点餐系统的设计和实现

作者主页&#xff1a;Designer 小郑 作者简介&#xff1a;Java全栈软件工程师一枚&#xff0c;来自浙江宁波&#xff0c;负责开发管理公司OA项目&#xff0c;专注软件前后端开发&#xff08;Vue、SpringBoot和微信小程序&#xff09;、系统定制、远程技术指导。CSDN学院、蓝桥云…

Android 学习笔记

目录一.Android入门1.Android 概述2.Android Studio3.创建模拟器4.使用外部模拟器5.第一个app二.app开发基础1.开发语言2.app工程目录结构3.文本控件TextView(1)设置文本内容(2)设置文本大小(3)设置文本颜色(4)设置背景颜色(5)设置视图宽高(6)设置视图间距(7)设置视图对齐方式4…

fpga实操训练(硬件乘法器)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 fpga上面的资源一般分成lut、pin、dff、dsp、pll。至于rom、ram、fifo&#xff0c;一般也是基于dff和lut来创建的&#xff0c;之前我们也讨论过。今…

ABAP 之ALV展示及下钻弹窗数据页面

序 HELLO, 这里是百里一个学习中的ABAPER,这里记录工作学习中遇到的bug,知识内容等内容.今天讲的是在工作中经常会使用的数据下钻,通过跳出小界面的方式展示关联数据.今天结合工作经验这里做下技术总结. 下钻简介 在ALV报表展示中.会出现关键字段下钻,展示某个界面或者系统自…

C语言基础--操作符详解

文章目录一、操作符1. 算数操作符2. 移位操作符&#xff08;1&#xff09;右移操作符举例补充&#xff08;2&#xff09;左移操作符举例分析&#xff08;3&#xff09;警告3.位操作符&#xff08;1&#xff09;按位与&#xff08;2&#xff09;按位或&#xff08;3&#xff09;…

小程序之后台交互--个人中心

目录一、微信登录流程简介二、微信用户信息获取1、index.js2、index.wxml三、微信登录流程代码详解1、后台准备①导入微信小程序SDK②application.yml③WxProperties④WxConfig⑤WxAuthController1、登录-小程序①login.js②user.js③util.js四、emoji的存储1、修改配置文件my.…

ArcGIS基础实验操作100例--实验24提取栅格独立格网面

本实验专栏来自于汤国安教授《地理信息系统基础实验操作100例》一书 实验平台&#xff1a;ArcGIS 10.6 实验数据&#xff1a;请访问实验1&#xff08;传送门&#xff09; 基础编辑篇--实验24 提取栅格独立格网面 目录 一、实验背景 二、实验数据 三、实验步骤 &#xff08;…

VMware 中 克隆多台虚拟机 快速创建虚拟机集群

我们在实际开发中可能会涉及到多台虚拟机&#xff0c;所以我们这里就模仿企业的方式进行多台虚拟机的操作方法&#xff1a; 我们现在就来学习一下如何用一台已有的虚拟机克隆出多台虚拟机。 我们第一步先来进行虚拟机的克隆&#xff1a; 我们现在就有了3太虚拟机了。 启动第一…

excel超链接应用:快速生成目录的几个方法-下

在上篇文章中&#xff0c;我们说到了基本的制作目录的方法&#xff0c;以及用宏表函数和超链接函数制作目录、用快捷键CTRLF制作目录的方法。今天我们要分享的另外三种方法&#xff0c;保证小伙伴们闻所未闻见所未见&#xff0c;一个公式都不用&#xff0c;就能完成目录的制作&…

镜头分辨率的计算和理解

镜头分辨力 计算和理解 1、镜头分辨率 镜头的分辨率是指在成像平面上 1 毫米间距内能分辨开的黑白相间的线条对数&#xff0c;单位是“线对/毫米”&#xff08; lp/mm&#xff0c;line-pairs/mm &#xff09; 最小能分辨的尺寸是线对数的2倍倒数。 例如&#xff1a;镜头分辨率…

Spark 3.0 - 16.ML SVD 奇异值分解理论与实战

目录 一.引言 二.奇异值分解理论 1.行矩阵 RowMatrix 2.奇异值分解算法 三.奇异值分解实战 1.构建 RowMatrix 2.奇异值分解 SVD 四.总结 一.引言 奇异值分解是矩阵分解计算的一种常用方法&#xff0c;矩阵分解主要用于数据降维&#xff0c;通过将高维的数据映射到低维…