程序设计的三种基本语句结构:
1,顺序结构
2,选择结构
3,循环结构
三种循环语句:
❶while 语句(当性循环)
❷do …while 语句(直到性循环)
❸for 语句(当性循环)
-
while 语句
-
do …while 语句
-
for 语句
(循环不能是死的,要是活的)
循环结构构成的要素:
- 循环控制条件
- 循环控制变量(循环不能是死的,要是活的)
- 循环体
循环的控制方法:
- 重复次数固定(已知)【计数控制】
- 重复次数不固定(未知)【条件控制】
循环结构类型:
- 当性循环
- 直到性循环(至少执行一次循环体)
ps:执行起来后二者没有区别
-
for 循环语句
常用在循环次数已知情况下。
属于当性循环(先判断条件)
语法格式如下:
for(表达式 1;表达式 2;表达式 3)语句
或者,语句比较多时:
for(表达式 1;表达式 2;表达式 3)
{
语句 1
语句 2
}
其中,循环条件 p 体现在表达式 2
表达式 2 得到的值,以真和假来进行判别。
如何判别:和分支结构的判断一样,即用 0 表示假,非 0 为真。
循环控制变量体现在表达式 3
表达式 1 作为循环变量初始化表达式(在循环之前,先赋值好)(只有刚开始有用,一旦循环起来和表达式 1 就没关系了)
for 语句 执行过程:
- 计算表达式 1
- 判断表达式 2 是否成立,如果成立进入步骤 3(进入循环体);如果不成立,则退出循环,进入循环体后面的语句
- 执行循环体语句,然后计算表达式 3,回到步骤 2
for 循环语句表达式的省略:
- 表达式 1,2,3 均可省略
- 表达式 1 省略,则在 for 循环语句前面进行循环变量的初始化
- 表达式 2 省略,可循环控制条件永远为真,会进入死循环。(所以一般不省略)
- 表达式 3 省略,则需要将表达式 3 放在循环体中
-
while语句
while循环语句执行过程:
- 计算循环控制表达式的值,如果循环控制表达式的值为真(不为 0),就转向 2,否则转向 3
- 执行循环体,然后转向 1
- 循环过程停止,程序转移到 while 语句后面的语句
while(表达式)语句
-
do…while 语句
与 while 语句区别:do…while 语句是在执行完循环体之后再判断循环条件是否成立。
do
语句
while(表达式);
注意⚠️:小括号后面的分号是必须的
i 为循环变量,sum 为累加值
注意⚠️:只要是累加的操作,赋值就以 0 赋
一, for 语句实现:
注意⚠️:上图中,{}中,即为循环体
二, while语句实现:
i 值变化要放到循环体里,否则为死循环
即,注意❗️i ++放进去
三,do…while 语句实现
(都能执行的情况下, while 和 do…while 就没什么区别了)
例题 1:计算并输出 1+2+3+…+n 的值
解答:
①用 for 循环:
(n 是不固定的,从键盘输入的值,用 scanf 取)
②用 while 循环:
-
调试方法——输出每次循环累加的结果
❗️ (对于累加的变量,必须要有清零操作或者有一个确定的初值)
例题 2:计算并输入 n!
PS :
int 为普通整型,使用四个字节(32 位) 来表示,表示的整数的范围是 -2^31 到+2^31-1
long 也是 4 个字节(在 devc 中)或 8 个字节(vc 中) long 表示的范围会更大一些,相比于 int。
解答:
用 for 语句:
注意⚠️:是 %ld
(当使用 long,输入 100 时,计算不出了。这时可以将 long 换为 double)
- 调试:每一次累乘的中间结果输出
例题 3:输入 n 值,计算并输出 1!+2!+…+n!
解答:
用 for 循环:
嵌套循环
将一个循环语句放在另一个循环语句的循环体中构成的循环
使用嵌套循环解答例题 3:
但是简便方法还是下面这个:
条件控制的循环:
- 累加项的前后项之间无关(寻找累加项的计算通式)
fac=fac *n;
term=1.0/fac;
e=e+term;
e 的初始值为 1.0
- 累加项的前后项之间有关……
接上题:
用 for 循环写一下:
这里就不知道有多少次了,是未知的。
加的 count++,count 主要是记录循环的次数。统计循环次数。
term 的值是越来越小的,当小到 1e-5,for 循环就退出了。
针对这题,最好用 while: