深入浅出循环语句—【C语言】

这篇具有很好参考价值的文章主要介绍了深入浅出循环语句—【C语言】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

深入浅出循环语句—【C语言】

 分支语句博客:http://t.csdn.cn/U2kZF

目录

​编辑

前言:我们先来了解一下break 、continue在循环中的作用

1. while循环

 while循环中的break

 while循环中的continue 

2. for循环

for循环省略出错举例:

 for循环中的break

 for循环中的continue

3. do   while循环

利用do while循环打印1~10 

 do  while循环中的break

 do  while循环中的continue

4. 练习

4.1 计算 n的阶乘

4.2 计算1!+2!+3!+……+10!

5. 实现二分(折半)查找算法

5.1 思路分析

5.2 二分查找代码实现


前言:我们先来了解一下break 、continue在循环中的作用

break:终止循环(暴力)

continue:跳过本次循环continue后面的代码,再循环(温柔)

1. while循环

当条件满足的情况下,if语句后的语句执行,否则不执行。 但是这个语句只会执行一次。 由于我们发现生活中很多的实际的例子是:同一件事情我们需要完成很多次。 那我们怎么做呢? C语言中给我们引入了: while 语句,可以实现循环。

深入浅出循环语句—【C语言】


深入浅出循环语句—【C语言】


 while循环中的break

深入浅出循环语句—【C语言】

当n=5时,if语句为真,执行break语句,break在while循环中跳出的是整个循环,如果有多组循环嵌套,跳出的是内层循环(跳出一组循环)


 while循环中的continue 

深入浅出循环语句—【C语言】

 当n=5的时候,执行continue语句,跳过continue后面的代码,开始下次循环



2. for循环

表达式1 初始化部分,用于初始化循环变量的。

表达式2 条件判断部分,用于判断循环时候终止。

表达式3 调整部分,用于循环条件的调整。

深入浅出循环语句—【C语言】


深入浅出循环语句—【C语言】


深入浅出循环语句—【C语言】

for循环省略出错举例:

深入浅出循环语句—【C语言】

 这里是两个for循环嵌套,开始时i=0,j=0,进入内部for循环,循环4次出内层循环,这是j=4,再当i=1,再次进入内层for循环的时候,这是由于j没有初始化部分,所以j还是为4,直接跳出内层for循环~~~本来打印16个hehe,现在只打印4个



 for循环中的break

深入浅出循环语句—【C语言】

 当i=5时,执行break代码,直接跳出for循环


 for循环中的continue

深入浅出循环语句—【C语言】

 当i=5时,执行continue代码——跳出本次循环continue后面的代码,直接到调整部分—>再到for循环判断部分


for循环使用建议

1. 不可在for 循环体内修改循环变量,防止 for 循环失去控制。

2. 建议for语句的循环控制变量的取值采用“前闭后开区间”写法。



3. do   while循环

深入浅出循环语句—【C语言】

 循环至少执行一次,使用的场景有限,所以不是经常使用。


深入浅出循环语句—【C语言】


利用do while循环打印1~10 

深入浅出循环语句—【C语言】


 do  while循环中的break

深入浅出循环语句—【C语言】

break直接跳出循环


 do  while循环中的continue

深入浅出循环语句—【C语言】

 continue跳过本次循环后面的代码,由于这里跳过了调整部分,i=5一直为真,一直执行continue,就打印出1234 死循环



4. 练习

4.1 计算 n的阶乘

int main()
{
	int n = 0;
	scanf("%d", &n);
	int ret = 1; 		//注意ret不能定义为0
	for (int i = 1; i <=n ; i++)
	{
		ret *= i;
	}
	printf("%d", ret);
	return 0;
}

4.2 计算1!+2!+3!+……+10!

int main()
{
	int ret = 1;
	int sum = 0;
	for (int i = 0; i <=10 ; i++)
	{
		ret *= i;
		sum += ret;//sum=sum + ret;也可以这样来看
	}
	printf("%d", sum);
	return 0;
}

5. 实现二分(折半)查找算法

二分查找算法使用的前提是数组元素有序(升序)、(降序)

5.1 思路分析

1.确定被查找范围的左右下标left、right
2.根据left和right,确定中间元素下标mid
3.根据mid锁定的元素,和要查找的元素进行比较,确定新的元素范围left和right

深入浅出循环语句—【C语言】


 5.2 二分查找代码实现

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>


int main()
{
	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };//升序
	//printf("%d\n", sizeof(arr));//计算的数组的总大小,单位是字节
	//printf("%d\n", sizeof(arr[0]));//4
	//printf("%d\n", sizeof(arr) / sizeof(arr[0]));
	int k = 7;
	int i = 0;
	int sz = sizeof(arr) / sizeof(arr[0]);
	//1
	int left = 0;
	int right = sz - 1;
	int flag = 0;//flag的作用是标志是否找到了
	//2
	while (left <= right)
	{
		int mid = (left + right) / 2;
		if (arr[mid] == k)
		{
			printf("找到了,下标是:%d\n", mid);
			flag = 1;
			break;
		}
		else if (arr[mid] < k)
		{
			left = mid + 1;
		}
		else
		{
			right = mid - 1;
		}
	}
	//1 2
	if (flag == 0)
		printf("没找到\n");

	return 0;
}

 运行结果

深入浅出循环语句—【C语言】



如果觉得文章不错,期待你的一键三连哦,你个鼓励是我创作的动力之源,让我们一起加油,顶峰相见!!!文章来源地址https://www.toymoban.com/news/detail-444971.html

到了这里,关于深入浅出循环语句—【C语言】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 深入浅出:大语言模型的视觉解析

    一系列工具与文章的汇编,直观易懂地解读复杂的 AI 概念 图片由作者利用 unDraw.co 的免费插图制作 在当今世界,大语言模型(LLM)成为了热门话题。几乎每天都有新的语言模型问世,让人们在 AI 领域怀有一种“不容错过”的紧迫感。尽管如此,许多人仍对大语言模型的基础

    2024年01月19日
    浏览(13)
  • 深入浅出对话系统——自然语言理解模块

    首先回顾一下自然语言理解的概念。 自然语言理解(Natural Language Understanding)包含三个子模块: 其中领域识别和意图识别都是分类问题,而语义槽填充属于序列标注问题。所以,在自然语言理解中,我们要解决两个分类任务和一个序列标注任务。既然其中两个问题都属于分类任

    2024年02月08日
    浏览(15)
  • 深入浅出堆—C语言版【数据结构】

    二叉树概念博客 :http://t.csdn.cn/XIW84 目录 1. 了解堆 1.1 堆的概念 1.2 堆的性质: 1.3 堆的结构图片 1.3.1 小堆 1.3.2 大堆 2. 堆的实现 2.1 插入数据进堆 2.2 向上调整函数 2.3 堆的删除 2.4 向下调整 3. 堆的应用 3.1 建堆(两种方式) 3.1.1 建堆方式1 3.1.2 建堆方式2 3.2 堆排序  3.3 堆的

    2024年02月04日
    浏览(19)
  • 深入浅出对话系统——基于预训练语言模型的对话管理

    主要讲解三篇论文,主要思想是把自然语言理解、对话管理和自然语言生成三部分整合到一起。 数据集 CamRest676 MultiWOZ 都是用的自回归语言模型 causal GPT-2、Transformer Decoder 一个概念:delexicalization 通过相应的占位符替换特定的槽值 占位符作为特定的token,不关心具体的取值

    2024年02月16日
    浏览(13)
  • 深入浅出二叉树— C语言版【数据结构】

    目录 ​编辑 1.树概念及结构 1.1树的概念 1.2 树的相关概念 ​1.3 树的表示 2.二叉树概念及结构   2.1概念 2.2 特殊的二叉树 2.3 二叉树的性质  2.4 简单二叉树题目练习  2.5 二叉树的存储结构 2.5.1 顺序存储——堆 2.5.2 链式存储 树是一种 非线性的数据结构 ,它是由n(n=0)个有

    2024年02月03日
    浏览(34)
  • 深入浅出 C 语言:学变量、掌控流程、玩指针,全方位掌握 C 编程技能

    C 语言介绍 C 语言的特性 C 语言相对于其他语言的优势 C 程序的编译 C 中的 Hello World 程序 参考文章: C 语言入门:如何编写 Hello World C 语言函数:入门指南 C 中的变量和 C 语言中的作用域规则 C 中的数据类型 运算符及其类型 C 语言中的类型转换 参考文章: C 语言注释

    2024年02月02日
    浏览(14)
  • 【数据结构】深入浅出理解快速排序背后的原理 以及 版本优化【万字详解】(C语言实现)

    快速排序是 Hoare 于1962年提出的一种 二叉树结构 的 交换排序 方法。 任取待排序元素序列中的 某元素作为基准值 ,按照该排序码将待排序集合 分割成两子序列 , 左子序列中所有元素均小于基准值,右子序列中所有元素均大于基准值 ,然后最左右子序列重复该过程,直到所

    2024年02月05日
    浏览(59)
  • ⚡【C语言趣味教程】(1) 深入浅出 HelloWorld | 通过 HelloWorld 展开教学 | 头文件详解 | main 函数详解

      🔗 《C语言趣味教程》👈 猛戳订阅!!! 💭 写在前面: 这是一套 C 语言趣味教学专栏,目前正在火热连载中,欢迎猛戳订阅!本专栏保证篇篇精品,继续保持本人一贯的幽默式写作风格,当然,在有趣的同时也同样会保证文章的质量,旨在能够产出 \\\"有趣的干货\\\" !

    2024年02月13日
    浏览(17)
  • 【C语言趣味教程】(1) 深入浅出 HelloWorld:通过 HelloWorld 展开教学 | 头文件详解 | main 函数详解

      🔗 《C语言趣味教程》👈 猛戳订阅!!! 💭 写在前面: 这是一套 C 语言趣味教学专栏,目前正在火热连载中,欢迎猛戳订阅!本专栏保证篇篇精品,继续保持本人一贯的幽默式写作风格,当然,在有趣的同时也同样会保证文章的质量,旨在能够产出 \\\"有趣的干货\\\" !

    2024年02月15日
    浏览(22)
  • ⚡【C语言趣味教程】(1):深入浅出 HelloWorld | 通过 HelloWorld 展开教学 | 头文件详解 | main 函数详解

      🔗 《C语言趣味教程》👈 猛戳订阅!!! 💭 写在前面: 这是一套 C 语言趣味教学专栏,目前正在火热连载中,欢迎猛戳订阅!本专栏保证篇篇精品,继续保持本人一贯的幽默式写作风格,当然,在有趣的同时也同样会保证文章的质量,旨在能够产出 \\\"有趣的干货\\\" !

    2024年02月12日
    浏览(18)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包