11.05学习

时间:2024-11-06 16:23:19

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

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

1. 基本语法:

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

// 循环体

}

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

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

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

2. 循环体:

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

3. 无限循环:

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

 

for(;;) {

// 无限循环体

}

4. 空操作:

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

 

for(; ; ) {

// 循环体

}

5. 多个变量更新:

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

 

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

// 循环体

}

6. 跳转语句:

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

 break :立即退出循环。

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

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

7. 嵌套循环:

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

8. 变量作用域:

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

9. 性能考虑:

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

10. 与 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 之间的代码块,至少执行一次。

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

2. 至少执行一次:

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

3. 条件表达式:

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

4. 无限循环:

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

 

do {

// 循环体

} while (1);

5. 跳转语句:

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

 break :立即退出循环。

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

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

6. 嵌套循环:

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

7. 变量作用域:

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

8. 性能考虑:

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

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

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

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

10. 使用场景:

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

 

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

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

1. 基本语法:

while (条件表达式) {

// 循环体

}

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

2. 零次执行的风险:

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

3. 无限循环:

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

 

while (1) {

// 无限循环体

}

4. 跳转语句:

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

 break :立即退出循环。

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

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

5. 嵌套循环:

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

6. 变量作用域:

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

7. 性能考虑:

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

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

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

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

9. 使用场景:

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

10. 条件表达式的控制:

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

11. 循环控制:

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

12. 与 for 循环的转换:

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