while语句
while语句的语法形式
while(表达式) 语句;
当表达式为真时,执行语句。否则执行下一条语句。
#include <iostream>
using namespace std;
int main()
{
int n = 1, sum = 0;
while (n <= 100)
{
sum = sum + n;
n =n+1;//n+=1
}
cout << sum << endl;
getchar();//解决程序闪退问题
return 0;
}
do-while语句
do-while语句的语法形式
do 语句 while(表达式);
注意:
(1)do语句的最后必须用分号(;)作为语句结束,循环体复合语句形式为:
do{
//复合语句
}while(表达式);
(2)do语句先执行后判定,while语句先执行后判定,do语句必须肯定执行一次,但while语句可能一次都不执行。
(3)do语句和while语句可以替换。
#include <iostream>
using namespace std;
int main()
{
int n = 1, k = 1;
do {
k = k * n;
cin >> n;
} while (n != 0);
cout << k;
return 0;
}
for语句
for语句的语法形式
for(表达式1;表达式2;表达式3) 语句;
for(int n=1;n<101;n++) sum=sum+n;
省略表达式1
int n=1 sum=0;
for(;n<=100;n++) sum=sum+n;
省略表达式3
for(int n=1,sum=0;n<101;) sum=sum+n,n++;
省略表达式1和表达式3
int n=1,sum=0;
for(;n<101;)sum=sum+n;n++;
break语句
break语句结束循环,跳到循环以外的语句执行。只能用在switch语句和循环语句(while ,do, for)语句中,不能单独使用。
break;
#include <iostream>
using namespace std;
int main()
{
int m,i;
cin >> m;
for (i = 2; i < m ; i++)
{
if (m%i == 0) break;
}
if (i == m) cout << "yes" << endl;
else cout << "no" << endl;
//getchar();
return 0;
}
continue语句
continue语句的作用是在循环体中结束本次循环,直接进入下一次循环.只能用在(while,do,for)语句中
continue;
求所有奇数之和。
for(intn=1,sum=0;n<=100;n++){
if(n%2==0) continue;
sum=sum+n;
}
循环嵌套示例
打印九九乘法表
#include <iostream>
using namespace std;
int main()
{
int i, j;
for (i = 1; i <=9; i++) {//控制行
for (j = 1; j <= i; j++) {//控制列
cout << i << "*" << j << "="<<i * j << " ";
}
cout << endl;
}
}
循环语句的选用
一、计数循环
(1)计数循环用于处理已知循环次数的循环过程
(2)控制变量在每次循环时都要发生规律性变化(递增或者递减),当控制变量达到预定的循环次数时,循环结束。
(3)技术型循环常使用for语句。
n!的和
#include <iostream>
using namespace std;
int main()
{
int i,sum,n;
for (i = 1,n=1,sum=0; i <= 10; i++) {
n = n * i;//n=n!;
sum = n + sum;
}
cout << sum << endl;
}
二、条件循环
(1)条件型循环用于处理循环次数未知的循环过程,成为“不定此循环”。
(2)在条件循环中,由于事先不能准确知道循环的次数,因此循环控制是由条件来判定的。在每次循环时检测这个条件,当条件一旦满足,循环就结束。
(3)条件型循环常使用while语句和do-while语句。
#include <iostream>
using namespace std;
int main()
{
double sum = 0, t = 1, s = 1,n=1;
while (fabs(t) > 1e-7)
{
sum = sum + t;
s = -s;
n = n + 2;
t = s / n;
}
cout << sum*4 << endl;
return 0;
}
循环语句应用举例
利用循环实现枚举法
1、定义:枚举法,也称为穷举法,指从可能的集合中一一枚举各个元素,用给定的约束条件判定哪些是无用的,哪些是有用的。能使命题成立者,即为问题的解。
2、枚举求解问题基本思路
(1)确定枚举对象、枚举范围和判定条件;
(2)一一枚举可能的解,验证是否是问题的解。
eg:买鸡
#include <iostream>
using namespace std;
int main()
{
int x, y, z;
for(x=0;x<=20;x++)
for(y=0;y<=100/3;y++)
for (z = 0; z <= 100; z++) {
if (x + y + z == 100 && 5 * x + 3 * y + z / 3 == 100 && z % 3 == 0)
cout << "公鸡:" << x << "母鸡:" << y << "小鸡:" << z << endl;
}
return 0;
}
利用循环实现迭代算法
1、定义:迭代法是一种不断用变量的旧值递推新值的求解方法。
2、思路:
(1)确定迭代变量。
(2)建立迭代关系式。
(3)对迭代过程进行控制。
#include <iostream>
using namespace std;
int main()
{
int i, f1 = 0, f2 = 1, fn;
for (i = 1; i <= 40; i++) {
fn = f1 + f2;
f1 = f2;
f2 = fn;
cout << f1 << endl;
}
return 0;
}