11.05学习

一、for循环语句的相关知识点

C语言中的 for 循环是一种基本的控制结构,用于重复执行一段代码直到满足某个条件。

  1. 基本语法:

for (初始化表达式;条件表达式;更新表达式) {

// 循环体

}

初始化表达式:在循环开始之前执行一次,通常用于设置循环变量的初始值。

条件表达式:在每次循环迭代之前检查,如果结果为真(非零),则执行循环体;如果结果为假(零),则退出循环。

更新表达式:在每次循环迭代之后执行,通常用于更新循环变量的值。

  1. 循环体:

可以是单个语句,也可以是多个语句组成的复合语句(用花括号 {} 包围)。

  1. 无限循环:

如果条件表达式总是为真, for 循环将变成无限循环。

for(;;) {

// 无限循环体

}

  1. 空操作:

如果不需要初始化、条件检查或更新,可以省略相应的部分。

for(; ; ) {

// 循环体

}

  1. 多个变量更新:

更新表达式可以包含多个操作,使用逗号分隔。

for (i = 0; i < 10; i++, j--) {

// 循环体

}

  1. 跳转语句:

在 for 循环体内可以使用 break 、 continue 、 return 等跳转语句来控制循环的流程。

break :立即退出循环。

continue :跳过当前迭代,继续下一次迭代。

return :退出函数并返回指定值。

  1. 嵌套循环:

for 循环可以嵌套在另一个 for 循环内部,形成多维循环。

  1. 变量作用域:

在 for 循环的初始化部分声明的变量,其作用域仅限于 for 循环体内部。

  1. 性能考虑:

尽量减少在条件表达式中的复杂计算,以避免不必要的性能开销。

  1. 与 while 和 do-while 循环的比较:

for 循环通常用于已知迭代次数的情况。

while 循环和 do-while 循环适用于迭代次数未知的情况。

例题

示例1:基本的 for 循环

#include <stdio.h>

int main() {

int i;

for (i = 0; i < 5; i++) {

printf("%d ", i);

}

return 0;

}

这个程序将打印0到4的数字。

示例2:使用 for 循环打印乘法表

#include <stdio.h>

int main() {

int i, j;

for (i = 1; i <= 9; i++) {

for (j = 1; j <= i; j++) {

printf("%d*%d=%d ", j, i, i * j);

}

printf("\n");

}

return 0;

}

这个程序将打印1到9的乘法表。

示例3:使用 for 循环计算总和

#include <stdio.h>

int main() {

int i, sum = 0;

for (i = 1; i <= 100; i++) {

sum += i;

}

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

return 0;

}

这个程序计算1到100的整数总和。

示例4:使用 for 循环打印奇数

#include <stdio.h>

int main() {

int i;

for (i = 1; i <= 10; i += 2) {

printf("%d ", i);

}

return 0;

}

这个程序将打印1到10之间的所有奇数。

示例5:使用 for 循环打印斐波那契数列

#include <stdio.h>

int main() {

int i, t1 = 0, t2 = 1, nextTerm;

for (i = 1; i <= 10; ++i) {

printf("%d ", t1);

nextTerm = t1 + t2;

t1 = t2;

t2 = nextTerm;

}

return 0;

}

这个程序将打印斐波那契数列的前10个数字。

示例6:使用 for 循环和数组

#include <stdio.h>

int main() {

int i, numbers[] = {10, 20, 30, 40, 50};

for (i = 0; i < 5; i++) {

printf("%d ", numbers[i]);

}

return 0;

}

这个程序将打印数组中的所有元素。

示例7:使用 for 循环和字符串

#include <stdio.h>

int main() {

char str[] = "Hello, World!";

for (int i = 0; str[i] != '\0'; i++) {

printf("%c", str[i]);

}

return 0;

}

这个程序将打印字符串中的每个字符,直到遇到空字符。

这些示例展示了 for 循环在C语言中的多样性和灵活性,适用于各种不同的编程任务。

二、do-while循环语句相关知识点

C语言中的 do-while 循环是一种后测试循环结构,这意味着循环体至少执行一次,然后根据条件判断是否继续执行循环。

  1. 基本语法:

do {

// 循环体

} while (条件表达式);

循环体:包含在 do 和 while 之间的代码块,至少执行一次。

条件表达式:在每次循环体执行完毕后进行测试,如果结果为真(非零),则继续执行循环体;如果结果为假(零),则退出循环。

  1. 至少执行一次:

与 for 和 while 循环不同, do-while 循环保证循环体至少执行一次,因为条件测试是在循环体执行之后进行的。

  1. 条件表达式:

条件表达式必须返回一个整数,如果返回非零值,循环继续执行;如果返回零,循环结束。

  1. 无限循环:

如果条件表达式总是为真, do-while 循环将变成无限循环。

do {

// 循环体

} while (1);

  1. 跳转语句:

在 do-while 循环体内可以使用 break 、 continue 、 return 等跳转语句来控制循环的流程。

break :立即退出循环。

continue :不适用,因为 do-while 循环没有"当前迭代"的概念。

return :退出函数并返回指定值。

  1. 嵌套循环:

do-while 循环可以嵌套在另一个循环内部,形成多维循环。

  1. 变量作用域:

在 do-while 循环中声明的变量,其作用域通常限于整个函数或代码块,除非在循环内部使用 for 循环的初始化部分声明。

  1. 性能考虑:

尽量减少在条件表达式中的复杂计算,以避免不必要的性能开销。

  1. 与 for 和 while 循环的比较:

do-while 循环适用于至少需要执行一次循环体的情况,而 while 循环适用于在进入循环体之前需要先进行条件测试的情况。

for 循环通常用于已知迭代次数的情况,而 do-while 循环适用于迭代次数未知或至少需要执行一次循环体的情况。

  1. 使用场景:

当你需要确保循环体至少执行一次,并且每次执行后都需要重新评估条件时, do-while 循环是一个合适的选择。

三、while循环语句相关知识点

C语言中的 while 循环是一种前测试循环结构,这意味着在执行循环体之前会先检查条件是否满足。

  1. 基本语法:

while (条件表达式) {

// 循环体

}

条件表达式:在每次循环迭代之前进行测试,如果结果为真(非零),则执行循环体;如果结果为假(零),则退出循环。

  1. 零次执行的风险:

如果条件表达式在循环开始时就为假, while 循环的循环体将不会执行,这可能导致一些初始化代码未被执行。

  1. 无限循环:

如果条件表达式总是为真, while 循环将变成无限循环。

while (1) {

// 无限循环体

}

  1. 跳转语句:

在 while 循环体内可以使用 break 、 continue 、 return 等跳转语句来控制循环的流程。

break :立即退出循环。

continue :跳过当前迭代,继续下一次迭代。

return :退出函数并返回指定值。

  1. 嵌套循环:

while 循环可以嵌套在另一个循环内部,形成多维循环。

  1. 变量作用域:

在 while 循环中声明的变量,其作用域通常限于整个函数或代码块,除非在循环内部使用 for 循环的初始化部分声明。

  1. 性能考虑:

尽量减少在条件表达式中的复杂计算,以避免不必要的性能开销。

  1. 与 for 和 do-while 循环的比较:

while 循环适用于在进入循环体之前需要先进行条件测试的情况,而 do-while 循环适用于至少需要执行一次循环体的情况。

for 循环通常用于已知迭代次数的情况,而 while 循环适用于迭代次数未知的情况。

  1. 使用场景:

当你需要在每次迭代之前检查条件,并且可能在第一次迭代之前就需要跳过循环体时, while 循环是一个合适的选择。

  1. 条件表达式的控制:

条件表达式可以是任何返回整数的表达式,包括逻辑表达式、关系表达式、算术表达式等。

  1. 循环控制:

在 while 循环中,通常需要有一种机制来改变条件表达式的值,否则很容易形成无限循环。

  1. 与 for 循环的转换:

有时候, while 循环可以与 for 循环相互转换,尽管这可能会改变代码的风格和可读性。

相关推荐
biter00881 小时前
opencv(15) OpenCV背景减除器(Background Subtractors)学习
人工智能·opencv·学习
Code哈哈笑2 小时前
【Java 学习】深度剖析Java多态:从向上转型到向下转型,解锁动态绑定的奥秘,让代码更优雅灵活
java·开发语言·学习
QQ同步助手3 小时前
如何正确使用人工智能:开启智慧学习与创新之旅
人工智能·学习·百度
流浪的小新3 小时前
【AI】人工智能、LLM学习资源汇总
人工智能·学习
A懿轩A4 小时前
C/C++ 数据结构与算法【数组】 数组详细解析【日常学习,考研必备】带图+详细代码
c语言·数据结构·c++·学习·考研·算法·数组
南宫生12 小时前
力扣-图论-17【算法学习day.67】
java·学习·算法·leetcode·图论
sanguine__12 小时前
Web APIs学习 (操作DOM BOM)
学习
数据的世界0114 小时前
.NET开发人员学习书籍推荐
学习·.net
四口鲸鱼爱吃盐14 小时前
CVPR2024 | 通过集成渐近正态分布学习实现强可迁移对抗攻击
学习
OopspoO17 小时前
qcow2镜像大小压缩
学习·性能优化