C语言——循环语句

news2024/9/9 0:41:57

C语言——循环语句

  • goto语句
  • while语句
  • do-while语句
  • for语句

要想了解循环就必须先明白构成循环的要素:
1、循环的起始条件;
2、循环体,即反复被执行的代码;
3、结束条件;
4、是循环趋向于结束的语句或者是操作;
循环语句分为三种分别是:goto语句、while语句、for循环语句;下面详细说明:

goto语句

goto语句其实是一个跳转语句,利用跳转语句的特性从而构成循环;
goto语句的语法:
goto 语句标号;
语句标号用标识符表示,它的定名规则与变扯名相同,即由字母、数字和下划线组成,其第一个字符必须为字母或下划线。不能用整数来作标号。

goto语句用法的例子:

#include <stdio.h>

int main(void)
{
	int sum = 0;
	int i = 1;

loop:
	sum += i;
	i++;
	if(i > 100)
	{
		goto exit;
	}
	goto loop;

exit:
	printf("sum = %d\n", sum);
	return 0;
}

通过上述代码可以知道goto语句是通过设置标签然后利用goto语句跳转到指定标签的位置直到达到结束条件为止从而实现循环的循环的效果,不过goto语句会破坏结构化的编程的结构一般不建议使用。

while语句

while语句的语法:
while (表达式)
{
语句;
}
语义:判断表达式如果为真就执行语句,语句执行完之后再继续进行表达式的判断,如果为假就结束循环执行while循环后面的语句;

用法例子如下:

#include <stdio.h>

int main(void)
{
	int sum = 0;
	int i = 1;

	while(i <= 100)
	{
		sum += i;
		++i;
	}

	printf("sum = %d\n", sum);

	return 0;
}

判断i是否小于100是就执行sum += i;和++i;语句当i大于100时结束循环打印sum的值。

do-while语句

do-while语句的语法:
do
{
语句;
}while(表达式);
注意这里的while()后面记得加上分号;
语义:
先执行do{}里面的语句,然后判断表达式如果为真就继续执行语句,然后再判断while(表达式)里面的表达式,重复这个过程,直到表达式为假,do-while 语句结束,程序继续往下。

do-whiel语句的用法例子:

记录从键盘上输入的字符个数;

#include <stdio.h>

int main(void)
{
	char ret;
	int count = 0;

	do
	{
		ret = getchar();
		++count;
	}while(ret != '\n');

	printf("count = %d\n", count);

	return 0;
}

程序进去就先进行输入数据和记录字符个数然后在判断while表达式;
while语句和do-while语句的区别:
do-while语句是先执行在判断而while语句是先执行在判断,二者的逻辑顺序不同;

for语句

for循环语句的语法:
for( 表达式 1; 表达式 2; 表达式 3)
{
循环体;
}
语义:
第一步求解表达式1;
第二步判断表达式2
第三步表达式2结果为真就执行循环体语句;
第四步求解表达式3;
求解完之后,继续判断表达式2重复第二步到第四步直到表达式2判断为假,for循环结束。

for循环用法例子:

找出水仙花数;

#include <stdio.h>

int main(void)
{
	int hundred = 0, ten = 0, unit = 0, i = 100;

	for(i = 100; i <= 999; i++)
	{
		unit = i % 10;
		ten = (i % 100) / 10;
		hundred = i / 100;

		if(i == unit*unit*unit + ten*ten*ten + hundred*hundred*hundred)
		{
			printf("%d is Narccissistic Number\n", i);
		}
	}

	return 0;
}

上述代码的执行流程是这样的:先求解表达式i = 100,然后判断 i是否小于等于999是执行取出三位数的个位十位百位的操作,然后执行if判断如果if判断结果为真就输出i,if语句结束后求解表达式i++再重复以上判断i <= 999,执行循环体求解++i的步骤直到i > 999为止,通过以上流程就能准确求出水仙花数了;

这么多的循环语句我们应该选用那一种呢?
1、for循环语句多用于有一定范围的场景;
2、while循环语句和do-while循环语句多用于只有某个结束条件的场景;

结束循环的语句还有break语句和continue语句,它们的作用各不相同;
break语句
break语句可以用在switch语句中使得switch(常量表达式)和case 常量表达式二者的常量表达式只匹配一次;
break语句也可以用在循环while , do-while, for循环语句中作用是跳出本层循环执行本层循环外的语句;
continue 语句
continue语句只能用在循环中作用是结束本次循环,继续下一次循环 ;

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

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

相关文章

JQuery异步请求与Flask后端通信、this和event指针汇总

目录 一.JQuery与Flask通信的三种方法 1.1$.ajax() 1.2$.get() 1.3$.post() 二.forEach()方法 三.this指针 3.1为什么要用this指针 3.2this的指向 3.3this指针的四种绑定方式 3.3.1默认绑定 3.3.2隐式绑定 3.3.3显式绑定 3.3.4new绑定 3.3.5通过标签调用this指针…

windows server服务器/linux服务器离线安装pandas

windows server服务器/linux服务器离线安装pandas pypi官网下载whl文件速度较慢&#xff0c;推荐使用国内的镜像源来下载&#xff0c;镜像源地址为 清华大学 &#xff1a;https://pypi.tuna.tsinghua.edu.cn/simple/ 阿里云&#xff1a;http://mirrors.aliyun.com/pypi/simple…

docker安装与container基本使用

安装 Homebrew 的 Cask 已经支持 Docker for Mac, mac用户狂喜 brew install --cask --appdir/Applications docker其他入门用法可参考 Docker Hello World- 菜鸟教程 或网上自行搜索博客学习。本文主要记录我运行go-zero-mall用到的一些注意点。当然&#xff0c;gonivinck项…

vue2+cesium实现报警特效

实现效果: 录制_2024_07_29_21_36_33_571 实现步骤如下: 1、安装cesium包:npm install cesium 2、在node-modules中找到刚刚安装的cesium,在文件夹中里面有一个Build文件夹,把Build里面的Cesium复制出来丢到public中 3、在index.html中进行引入: 4、新建一个js文件,…

前端常见场景、JS计算精度丢失问题(Decimal.js 介绍)

目录 一. Decimal.js 介绍 二. 常用方法 1. 创建 Decimal 实例 2.加法 add 或 plus 3.减法 sub 或 minus 4.乘法 times 或 mul 5.除法 div 或 dividedBy 6.取模 7.幂运算 8.平方根 9.保留小数位 toFixed方法(四舍五入) 三.项目应用 前端精度丢失问题通常由以下原因…

无线融合,智能协同:ECWAN打造物联网高效协同网络

关键词&#xff1a;资产管理、ECWAN、无线混合组网、用电监测、用电计量、广域基站、计量插座、边缘协同 在当今快速发展的物联网领域&#xff0c;每天都有数以亿计的设备互相通信&#xff0c;形成庞大而复杂的网络生态。在这样的背景下&#xff0c;ECWAN技术以其灵活、高效和智…

【Linux】TCP全解析:构建可靠的网络通信桥梁

文章目录 前言1. TCP 协议概述2. TCP报头结构3. 如何理解封装和解包呢&#xff1f;4. TCP的可靠性机制4.1 TCP的确认应答机制 4.2 超时重传机制5. TCP链接管理机制5.1 经典面试题&#xff1a;为什么建立连接是三次握手&#xff1f;5.2 经典面试题&#xff1a;为什么要进行四次挥…

读零信任网络:在不可信网络中构建安全系统04最小特权

1. 公钥基础设施 1.1. PKI 1.2. 数字证书本身并不能解决身份认证问题 1.2.1. 需要一种方法来验证获得的公钥的确属于某人 1.2.2. 公钥基础设施&#xff08;PKI&#xff09;解决了这个问题 1.3. PKI定义了一组角色及其职责&#xff0c;能够在不可信的网络中安全地分发和验证…

【Websim.ai】一句话让AI帮你生成一个网页

【Websim.ai】一句话让AI帮你生成一个网页 网站链接 websim.ai 简介 websim.ai接入了Claude Sonnet 3.5&#xff0c;GPT-4o等常用的LLM&#xff0c;只需要在websim.ai的官网指令栏中编写相关指令&#xff0c;有点类似大模型的Prompt&#xff0c;指令的好坏决定了网页生成的…

Lc63---1859将句子排序(排序)---Java版(未写完)

1.题目描述 2.思路 &#xff08;1&#xff09;首先将句子按空格分割成若干单词。 &#xff08;2&#xff09;每个单词的最后一个字符是它的位置索引。我们可以通过这个索引将单词恢复到正确的位置。 &#xff08;3&#xff09;按照单词的索引顺序排序这些单词。 &#xff08;4…

【已解决】嵌入式linux mobaxterm unable to open connection to comx 串口正常连接,但终端无法输入

1.点击Session重新选择串口&#xff0c;注意看看串口是不是连接到虚拟机&#xff0c;导致串口被占用。 2.选择PC机与开发板连接的串口&#xff0c;不知道的话可以打开设备管理器看看&#xff0c;选择正确的波特率&#xff0c;一般是115200。 3.关键一步&#xff1a;选择后别急…

性能测试:深入探索与实战指南

大家好&#xff0c;我是一名测试开发工程师&#xff0c;已经开源一套【自动化测试框架】和【测试管理平台】&#xff0c;欢迎大家联系我&#xff0c;一起【分享测试知识&#xff0c;交流测试技术】 在当今这个信息化、数字化的时代&#xff0c;软件系统的性能直接关乎到用户体验…

使用 Matlab 绘制带有纹理的柱状图

以下是效果 1. 在 Matlab 里安装两个额外的库&#xff1a; hatchfill2 和 legendflex。 &#xff08;1&#xff09;搜索并安装 hatchfill2&#xff0c;用来画纹理 (2) 搜索并安装 legendflex&#xff0c;用来画自定义的图例 2. 代码&#xff08;说明见注释&#xff09; data …

Centos 7系统(最小化安装)安装Git 、git-man帮助、补全git命令-详细文章

安装之前由于是最小化安装centos7安装一些开发环境和工具包 文章使用国内阿里源 cd /etc/yum.repos.d/ && mkdir myrepo && mv * myrepo&&lscurl -O https://mirrors.aliyun.com/repo/epel-7.repo;curl -O https://mirrors.aliyun.com/repo/Centos-7…

docker安装phpMyAdmin

直接安装phpMyAdmin需要有php环境&#xff0c;比较麻烦&#xff0c;总结了使用docker安装方法&#xff0c;并提供docker镜像。 1.docker镜像 见我上传的docker镜像&#xff1a;https://download.csdn.net/download/taotao_guiwang/89595177 2.安装 1).加载镜像 docker load …

(leetcode学习)24. 两两交换链表中的节点

给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff09;。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4] 输出&#xff1a;[2,1,4…

Sonatype Nexus Repository搭建与使用(详细教程3.70.1)

目录 一. 环境准备 二. 安装jdk 三. 搭建Nexus存储库 四. 使用介绍 一. 环境准备 主机名IP系统软件版本配置信息nexus192.168.226.26Rocky_linux9.4 Nexus Repository 3.70.1 MySQL8.0 jdk-11.0.23 2核2G&#xff0c;磁盘20G 进行时间同步&#xff0c;关闭防火墙和selinux…

秋招突击——7/29——操作系统——网络IO

文章目录 引言基础知识零拷贝传统文件读取传统文件传输零拷贝mmap writesendifle 网络通信IO模型阻塞IO非阻塞IO IO多路复用模型selectpollselect和poll的总结epoll边缘触发ET和水平触发LT 信号驱动IO模型异步IO 面试题库1、说一下Linux五种IO模型2、阻塞IO和非阻塞IO应用场景…

可视化目标检测算法推理部署(一)Gradio的UI设计

引言 在先前RT-DETR模型的学习过程中&#xff0c;博主自己使用Flask框架搭建了一个用于模型推理的小案例&#xff1a; FlaskRT-DETR模型推理 在这个过程中&#xff0c;博主需要学习Flask、HTML等相关内容&#xff0c;并且博主做出的页面还很丑&#xff0c;那么&#xff0c;是…

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第三篇 嵌入式Linux驱动开发篇-第六十六章 电容屏触摸驱动实验

i.MX8MM处理器采用了先进的14LPCFinFET工艺&#xff0c;提供更快的速度和更高的电源效率;四核Cortex-A53&#xff0c;单核Cortex-M4&#xff0c;多达五个内核 &#xff0c;主频高达1.8GHz&#xff0c;2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…