在实际生活中,我们经常会将同一件事情重复做很多次。在C++中也经常需要重复执行同一代码块,这时就需要使用循环结构语句。循环结构语句包括for、while和do while语句。
for语句的示例及其运行逻辑如下图所示。
训练10(P5722): 计算1+2+3+ … +( n -1)+ n 的值,其中,正整数 n 不大于100。
训练11(B2098): 给定含有 n 个整数的序列,要求对这个序列进行去重操作。所谓去重,是指对这个序列中每个重复出现的数,只保留该数第一次出现时的位置,删除其余位置。
1.continue语句
continue语句用于跳过后面的循环体,直接循环更新且执行下一次循环,其运行逻辑如下图所示。
2.break语句
break语句用于直接跳出所在的循环,其运行逻辑如下图所示。
训练12(B2059): 计算非负整数 m ~ n (包括 m 和 n )之间所有奇数的和,其中, m 不大于 n , n 不大于300。例如 m =3, n =12,其和为3+5+7+9+11=35。
训练13(B2128): 求在2~ n ( n 为大于2的正整数)区间有多少个素数。
while语句会反复地进行条件判断,只要条件成立,循环体就会一直执行,直到条件不成立,while循环才会结束。其示例及运行逻辑如下图所示。
训练14(P5722): 计算1+2+3+ … +( n -1)+ n 的值,其中,正整数 n 不大于100。
do while语句先执行循环体,再判断循环条件,至少执行一次循环体。
训练15(P5722): 计算1+2+3+ … +( n -1)+ n 的值,其中正整数 n 不大于100。
训练16(B2077): 角谷猜想指对于任意一个正整数,若它是奇数,则将其乘以3加1;若它是偶数,则将其除以2,将得到的结果再按照上述规则重复处理,最终总能够得到1。输入一个整数,将经过处理得到1的过程输出。例如输入5,输出:
代码如下。
for、while、do while语句的区别如下。
●while语句先判断循环条件,再决定是否执行循环体。
●do while语句先执行循环体,再判断循环条件,至少执行一次循环体。
●for语句在省略循环条件时,会认为条件为true。
●for语句可以用初始化语句声明一个局部变量,而while语句不可以。
●若在循环体中包含continue语句,则for语句会跳到循环更新处,while语句会跳到循环条件处。
●在无法预知循环次数或者循环更新不规律时,可以用while语句。