今天给大家分享C语言中的for循环语句的基本语法以及基本使用。老样子,首先还是来了解for循环的语法格式
for(表达式1;表达式2;表达式3) { 语句; }
上面呢就是for循环的基本语法格式,我来简要介绍一下。
表达式1:设置初始条件,只执行一次,可以为多个变量设置初始值。
表达式2:循环条件表达式,判断是否集训循环。
表达式3:执行循环体后再执行。
这里要注意的是,表达式1只在循环开始时执行一次,而表达式3是循环结束后再执行。表达式2可以省略,省略后默认值为1,则判断为真,for循环就会成为一个死循环。
日常编写代码最常用的格式
for(定义循环变量初始值;循环条件;循环变量增值) 语句;
例如,使用for循环打印1-10的数字
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int main() { int a = 0; for (a = 1; a < 11;a++) { printf("%d\n", a); } return 0; }
我来简单解释一下上述代码的执行过程,首先定义整形变量a==0,进入循环,将变量a的初始值定义为1,判断条件为a<11为真,然后输出a,最后a++,那么我们知道变量初始化只执行一次,变量
增值在循环结束后执行,则a==1在最初只执行一次,给a赋值为1后便和循环没有关系了,a==1进入判断条件<11为真,输出a的值1,然后a自增==2,再次判断<11为真,输出a的值为2,a再次自增,如此循环下去,a的值到达11时循环结束。
那么既然a==1只执行一次,a++每次都执行,那么可不可以把a==1放在循环外,a++放在循环体中呢,当然可以。
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int main() { int a = 1; for (; a < 11;) { printf("%d\n", a); a++; } return 0; }
不过要注意的是,即使将表达式1和表达式3移除,()内的分号也不能去掉。
for循环中的break语句
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int main() { int i; for (i = 1; i < 11;i++) { if (i==5) { break; } printf("%d\n", i); } return 0; }
当我们在刚刚实现的代码中加入一个if语句,添加一个break后,执行结果发生了变化。可以看到当执行到i==5时循环结束了,那我们通过这个结果不难知道,break在for循环中的意思为停止。
for循环中的continue
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int main() { int i; for (i = 1; i < 11;i++) { if (i==5) { continue; } printf("%d\n", i); } return 0; }
当我们将上述代码中的break替换为break之后,发现结果又发生了变化,可以看到结果没有输出5,那么我们可以知道continue的意思为跳过当前循环,执行下一次循环。
知道了for循环的基本语法格式,我们来进行一个小练习。
求出1!——n!的和
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int main() { int numb, i, n, ret = 1, sum = 0; scanf("%d", &numb); for (n = 1; n <= numb; n++) { ret = 1; for (i = 1; i <= n; i++) { ret *= i; } sum += ret; } printf("%d\n", sum); return 0; }
我来简单说明一下
//假如numb=3;当n=1,n<3,进入循环,n=1,i=1,i==n,进入内部循环,ret=ret*i=1,i++=2>n,内部循环跳出,sum=ret+sum=1,
//n++=2<=3,进入第二次外部循环,i=1,n=2,i<n,进入内部循环,ret=ret*1=1,i++=2==n,再次循环ret=ret*i=2,i++=3>n,跳出内部循环,sum=ret+sum=1+2,直到n=3,sum=9
那么我们可以看到上面那个代码在外部for语句中嵌套了一个for语句,那我们可以知道foe循环是可以支持嵌套的。
以上就是今天的分享了,那么关于for循环你了解了多少呢。