for循环
阶乘
- n!=1×2×3×4×…×n
- 写一个程序,让用户输入n,然后计算输出n!
- 变量:
init
会首先被执行,且只会执行一次。这一步允许声明并初始化任何循环控制变量(仅C99支持声明变量)。也可以不在这里写任何语句,只要有一个分号出现即可。- 接下来会判断
condition
。如果为真,则执行循环主体;如果为假,则不执行循环主体,且控制流会跳转到紧接着for循环的下一条语句。 - 在执行完for循环主体后,控制流会跳回上面的
increment
语句。该语句允许更新循环控制变量。该语句也可以留空,只要条件后面有一个分号即可。 - 条件再次被判断。如果为真,则执行循环,这个过程会不断重复(循环主体,然后增加步值,再然后重新判断条件)。在条件变为假时,for 循环终止。
注意:
做求和的程序时,记录结果的变量应该初始化为0;而在做求积的程序时,记录结果的变量应该初始化为1。
循环的计算和选择
tips for loops
- 如果有固定循环次数,就用for
- 必须执行一次循环,就用do_while
- 其他情况用while
循环控制
break语句
终止循环或switch语句,程序流将执行紧接着的循环或者switch的下一条语句。
C语言中的break语句有以下两种用法:
- 当break语句出现在循环内时,循环会立即终止,且程序流将继续执行紧接着循环的下一条语句。
- 它可用于终止switch语句中的一个case。
如果是嵌套循环(即一个循环内嵌套另一个循环),break语句会停止执行最内层循环,然后开始执行该块之后的下一行代码。
语法
C语言中的break语法:
break;
continue语句
告诉一个循环体立即终止本次循环迭代,重新开始下一次循环迭代。
continue语句不会强制终止循环,而是会跳过循环,强行开始下一次循环。对于for循环,continue语句执行后自增语句仍然会执行;对于while和do-while循环,continue语句执行后则会重新执行条件判断语句。
语法
C语言中continue语句的语法:
continue;
嵌套循环
C语言中的goto语句允许把控制无条件的转移到同一函数内被标记的语句。
注意:在任何编程语言中,都不建议使用 goto 语句。因为它使得程序的控制流难以跟踪,使程序难以理解和难以修改。任何使用 goto 语句的程序可以改写成不需要使用 goto 语句的写法。
语法
C语言中goto语句的语法:
goto label;
...
..
label:
....
在这里,label 可以是任何除 C 关键字以外的纯文本,它可以设置在 C 程序中 goto 语句的前面或者后面。