C语言循环基础
首先用的最多是for循环
for ( init; condition; increment )
{
statement(s);
}
for 循环是一种在编程中经常使用的迭代结构,用于重复执行一组语句,直到指定的条件不再满足。for 循环的基本语法如下:
for (初始化表达式; 循环条件; 迭代表达式)
{
循环体语句;
}
1.初始化表达式 (init):在循环开始之前执行一次。通常用于初始化循环控制变量。这一部分可以包含声明和赋值操作。
2.循环条件 (condition):在每次循环迭代之前检查的条件。如果条件为真(true),循环将继续执行;如果条件为假(false),循环将终止。
3.迭代表达式 (increment):在每次循环迭代之后执行。通常用于更新循环控制变量的值。
4.循环体语句 (statement(s)):在每次循环迭代时执行的一组语句。这是循环的主体,包含了实际的操作。
我会举个简单的例子,利用for循环计算1到5的和
#include <stdio.h>
int main()
{
int sum = 0;
// 使用 for 循环计算 1 到 5 的和
for (int i = 1; i <= 5; i++) {
sum += i;// 循环体语句
}
// 输出结果
printf("Sum: %d\n", sum);
return 0;
}
1.首先就是初始化表达式 int i = 1; 在循环开始前初始化循环控制变量 i,i就是1。
2.循环条件 i <= 5 在每次循环迭代前检查 i 是否小于等于 5。
3.迭代表达式 i++ 在每次循环迭代后将 i 的值增加 1。
4.循环体语句 sum += i; 在每次循环迭代时将当前的 i 加到 sum 中。
sum += i就是 sum = sum + i
循环开始时,sum 的初始值为 0,然后在每次循环中,当前的 i 的值都会加到 sum 上,最终得到 1 到 5 的和。
第一次循环:sum = 0 + 1,sum 的值为 1。
第二次循环:sum = 1 + 2,sum 的值为 3。
第三次循环:sum = 3 + 3,sum 的值为 6。
第四次循环:sum = 6 + 4,sum 的值为 10。
第五次循环:sum = 10 + 5,sum 的值为 15。
i++(后缀递增):
先使用当前值,然后再递增。
返回 i 的原始值,然后将 i 增加 1。
int i = 5;
int result = i++;
// result = 5, i = 6
++i(前缀递增):
先递增,然后再使用新值。
返回 i 增加 1 后的值。
在C语言中,for 循环的循环体可以是一个单独的语句,也就是说,你可以在没有大括号的情况下编写 for 循环。如果 for 循环只有一条语句,大括号是可选的 。
在你的代码中,你的 for 循环只有一条语句,因此去掉大括号是合法的。以下是你的代码的修正版:
#include <stdio.h>
int main()
{
/* for 循环执行 */
for (int a = 10; a < 20; a = a + 1) {
printf("a 的值: %d\n", a);
}
return 0;
}
第一次直接输出10,第二次执行迭代表达式,a 的值: 11 换行继续输出,最后是19
求1到100中所有偶数的和
#include <stdio.h>
int main() {
// 初始化偶数和为0
int even_sum = 0;
// 使用for循环遍历0到100的偶数
for (int num = 0; num <= 100; num += 2) //num = num + 2
{
even_sum += num; //even_sum = even_sum + num
}
// 打印结果
printf("0到100的偶数和为: %d\n", even_sum);
return 0;
}
在上述的C程序中,初始时 even_sum 被初始化为0,而 num 被设置为0。在第一次循环迭代中,num 的值是0,因此 even_sum 将增加0,即 even_sum 的值仍然是0(even_sum = even_sum + num)。所以,第一次循环迭代后,even_sum 的值仍然是0。第二次循环结果是2.
在第二次循环迭代中,num 的值已经被自增为2。循环条件 num <= 100 仍然满足,因此循环继续执行。在第二次迭代中,even_sum += num; 将 even_sum 加上 num(此时 num 的值为2),并且 num += 2; 将 num 自增为4。所以,第二次循环迭代后,even_sum 的值是2,而 num 的值变为4。
这个过程会一直重复,每次迭代都会将 num 的当前值加到 even_sum 中,然后将 num 增加2。最终,当 num 的值超过100时,循环终止。在循环结束时,even_sum 包含了0到100之间所有偶数的总和。
第一步执行rush = 1;就是初始化表达式,第二步执行循环条件,看rush 是否小于1000 ,第三步执行循环体语句,rush = 1. 第四步执行自加语句rush ++,此时rush 是2。 第五步执行循环条件,rush <= GOLD;即rush <= 1000,第六步执行自增语句,rush变成了3,第七步执行循环体语句,输出 rush = 7;
以下是一个简单的C语言程序,用于生成斐波那契数列的前n个数字:
#include <stdio.h>
void generateFibonacci(int n) {
int first = 0, second = 1, next, i;
printf("斐波那契数列前 %d 个数字:\n", n);
for (i = 0; i < n; i++) {
printf("%d, ", first);
next = first + second;
first = second;
second = next;
}
}
int main() {
int n;
printf("请输入要生成的斐波那契数列的数字个数:");
scanf("%d", &n);
generateFibonacci(n);
return 0;
}
for 循环可以嵌套使用
下面用C语言输出九九乘法表
#include <stdio.h>
int main()
{
int row, column;
for (row = 1; row <= 9; row++) {
for (column = 1; column <= 9; column++) {
printf("%d*%d = %2d\t", row, column, row * column);
}
printf("\n");
}
return 0;
}
外层循环 (for (row = 1; row <= 9; row++)): 控制行数,从1到9。
内层循环 (for (column = 1; column <= 9; column++)): 控制每行中的列数,同样从1到9 。
在内层循环中,printf语句输出了每一项的乘法表达式,其中%d*%d = %2d\t 是格式控制字符串,它表示输出两个整数相乘的结果,其中 %d 是用来格式化整数的占位符,%2d 表示至少输出两个字符的整数,\t 是制表符(用于在输出中产生水平制表)。
代码里printf("%d%d = %2d\t", row, column, row column); 语句用于输出九九乘法表中每一项的表达式。这样的格式化输出有助于让输出结果整齐对齐,提高可读性。例如,如果乘积是个位数,%2d 会在前面补一个空格,确保每一项的输出都占用两个字符的宽度。\t 是制表符(用于在输出中产生水平制表)。
调试:
评论 (0)