C(十)for循环 --- 黑神话情景

news/2024/10/4 7:39:57/

前言:

"踏过三界宝刹,阅过四洲繁华。笑过五蕴痴缠,舍过六根牵挂。怕什么欲念不休,怕什么浪迹天涯。步履不停,便是得救之法。"  

国际惯例,开篇先喝碗鸡汤。

今天,杰哥写的 for 循环相关内容👉目录:

  • for循环 的组成、运行流程及其变式
  • 使用for循环的若干注意事项
  • 关键字break 和 continue 在for 循环中的作用
  • for 循环的嵌套
  • 天命人

 一、for循环 的组成、运行流程及其变式

1、for循环的组成 

表达式1--->初始化

表达式2--->判断

表达式3--->调整

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

场景一:大圣法力积聚,1,2,3,···,9,10。👉

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

 2、for循环的运行流程

emmm 字丑勿喷 ,哈哈。

 3、for循环的变式

 3.1变表达式1(初始化)

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

运行结果👉:

5 6 7 8 9 10

3.2变表达式2(判断)

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

 运行结果:👉

1 2 3 4 5 6 7 8 9

3.3变表达式3(调整)

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

运行结果:👉

1 3 5 7 9

3.4表达式移位与删除

 3.4.1(表达式1移位)

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

3.4.2(死循环)(表达式2删除)

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

 3.4.3(表达式3移位)

#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>
int main()
{int i = 0;for (i = 1; i <= 10; ){i++;printf("%d ", i);}return 0;
}
2 3 4 5 6 7 8 9 10 11

3.5三个表达式全变 

 场景二:

大圣在打斗过程中,原生命值为100,现以5格血的速度往下掉,直到为0;

#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>
int main()
{int i = 0;for (i = 100; i >= 0; i -= 5){printf("%d ", i);}return 0;
}

运行结果👉

100 95 90 85 80 75 70 65 60 55 50 45 40 35 30 25 20 15 10 5 0

二、使用for循环的若干注意事项

 for循环的括号后面不可以加分号(因为分号可作为空语句,也算语句,那么分号假冒循环体)。

👉错误示例: 

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

留意是否能够在循环体中改变变量(尤其是控制循环进行的变量)

👉错误示例:(死循环)

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

三、关键字break 和 continue 在for 循环中的作用 

 1、break

———遇到break直接跳出整个循环 

 2、continue

———遇到continue跳出本次循环中continue后面的部分,又回到表达式3(调整部分)的位置开始

如下:

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

 运行结果👉

1 2 3 4 6 7 8 9 10

四、for 循环的嵌套

 场景三:

每闯过一关,难度会以下方式增加。

第一关:1 ;第二关:1 * 2 ;第三关 :1 * 2 * 3;······求难度总和,即1!+ 2!+···+10!

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

思考👉👉👉

  • 为什么int  sum = 0不放在循环的里面?
  • 为什么int  r  =  1不放在循环的外面?

运行结果👉

4037913

 五、天命人

敢问路在何方?路在脚下。

不是顺从天命,而是逆天改命。


http://www.ppmy.cn/news/1534293.html

相关文章

【Android 13源码分析】Activity生命周期之onCreate,onStart,onResume-1

忽然有一天&#xff0c;我想要做一件事&#xff1a;去代码中去验证那些曾经被“灌输”的理论。                                                                                  – 服装…

LeetCode hot100---双指针专题(C++语言)

双指针 (1)快慢双指针 适用于使用双指针进行元素移动&#xff0c;覆盖(2)首尾双指针 计算区域面积&#xff0c;三数之和1、移动0 &#xff08;1&#xff09;题目描述以及输入输出 (1)题目描述: 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#…

opencv实战项目(三十):使用傅里叶变换进行图像边缘检测

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一&#xff0c;什么是傅立叶变换&#xff1f;二&#xff0c;图像处理中的傅立叶变换&#xff1a;三&#xff0c;傅里叶变换进行边缘检测&#xff1a; 一&#xff0c…

JavaScript 数组方法

数组(array)是按次序排列的一组值。每个值的位置都有编号(从0开始)&#xff0c;整个数组用方括号表示。两端的方括号是数组的标志。 var a["a","b","c"]; 除了在定义时赋值&#xff0c;数组也可以先定义后赋值。 var arr[];arr[1]"a"…

分治算法:谈一谈大规模计算框架 MapReduce 中的分治思想

分治算法:谈一谈大规模计算框架 MapReduce 中的分治思想 在当今大数据时代,处理大规模数据的需求日益增长。MapReduce 作为一种广泛应用的大规模计算框架,其核心思想正是分治算法。本文将深入探讨 MapReduce 中的分治思想,并通过具体案例进行说明。 一、分治算法概述 分…

【JavaScript】数组函数汇总

JavaScript数组函数是处理和操作数据的基础&#xff0c;对于JavaScript开发至关重要。函数式编程方法&#xff0c;如map()、filter()和reduce()&#xff0c;能够提高代码的简洁性和功能性。数据不可变性是现代JavaScript开发中的一个重要概念&#xff0c;函数如concat()和slice…

C语言 | Leetcode C语言题解之第454题四数相加II

题目&#xff1a; 题解&#xff1a; struct hashTable {int key;int val;UT_hash_handle hh; };int fourSumCount(int* A, int ASize, int* B, int BSize, int* C, int CSize, int* D, int DSize) {struct hashTable* hashtable NULL;for (int i 0; i < ASize; i) {for (…

二值图像的面积求取的两种方法及MATLAB实现

一、引言 面积在数字图像处理中经常用到&#xff0c;在MATLAB中&#xff0c;计算二值图像的面积通常可以通过两种主要方法实现&#xff1a;遍历法和直接利用bwarea函数。下面将分别介绍这两种方法的原理和相应的MATLAB代码示例。 二、遍历法计算二值图像面积的原理和MATLAB代码…