控制程序流程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
for(y=0;y<=25;y++) for(z=0;z<=30;z++) { if(x+y+z==30 && 3*x+2*y+z==50) cout<<x<<“\t”<<y<<“\t”<<z<<“\n”; }
for( i=1; i<=100; i++ ) ; 语句(;)。
{
真正的循环体sum+=i没有执行。
sum+=i;
}
cout<<“Sum: “<<sum<<“\n”;
return 0;
}
-22-
循环的典型错误
#include <iostream>
using namespace std;
int main() {
using namespace std;
int main()
{
int badger;
cout<<"How many badgers?";
cin>>badger;
do
不要遗漏语句最后的;号。
{
无论条件如何设置,do~while循
cout<<"Badger "; 至少执行1次。
badger--;
break和continue仍然有效。
i++;
}
cout<<“Sum: “<<sum<<“\n”;
return 0;
}
-20-
for的变化形式5
#include <iostream>
using namespace std; int main() {
将循环体内的语句转移到某个表达式 中,不提倡这种用法。
第3部分为逗号表达式,顺序执行
int i=1, sum=0;
while在执行循环前检查条件,如果此时条件为 false,则一次循环也不执行。
do~while在循环之后检查条件,条件为true,继 续循环,条件为false结束循环。
do {
循环体语句; } while(表达式);
循环体语句 T
表达式 F
-11-
重复显示单词指定次数
#include <iostream>
-3-
while循环
在指定条件为true的情况下,程序重复执行,直到 指定条件变为false。
条件放在while之后的()内,循环执行的语句放 在一对{}内。
while(表达式) {
循环体语句; }
循环体语句
T
表达式
F
-4-
显示0~99
#include <iostream>
using namespace std;
-24-
循环的典型错误
#include <iostream> using namespace std; int main()
{
int i=1,sum=0;
do
{ sum+=i; i++;
do~while循环的结束必须有; 否则无法通过编译。
}while(i<=100)
cout<<“Sum: “<<sum<<“\n”; return 0; }
-27-
输出字符矩形
#include <iostream> using namespace std; int main() {…
for( int i=0; i<rows; i++ ) {
for( int j=0; j<columns; j++) {
cout<<character; } cout<<"\n"; } return 0; }
int x=0, count=0; while( count<19 ) {
x+=14; cout<<x<<" "; count++; } return 0; }
14倍数,从14开始,依次递增14。
-9-
本章内容安排
while循环 do~while循环 for循环 高级循环 switch
-10-
do~while循环
-28-
马克思手稿中的数学问题
共有30个人,其中有男人、女人和小孩,他们在一 家饭馆吃饭共花费了50先令,其中每个男人花费3 先令,每个女人花费2先令,每个小孩各花1先令, 问30个人中男人、女人和小孩各几人?
设男人、女人和小孩的人数各为x、y、z,则通过 题意可以列出下面的方程。 x+y+z=30 3x+2y+z=50
{
循环体;
}
表达式3
T 循环体语句
表达式1
表达式2 F
-14-
计算1~100的和
#include <iostream>
using namespace std; 表达式1:完成计数变量初始化。
int main()
表达式2:检查条件,确定是否
{ int i,sum=0; for(i=1;i<=100;i++)
for( i=1; i<=100; sum=sum+i, i++ )
{
;
}
cout<<“Sum: “<<sum<<“\n”;
return 0;
}
-21-
2、循环的典型问题
#include <iostream>
using namespace std;
int main()
{
int i,sum=0;
此时的for循环,执行了100次空
using namespace std; 初始化多个变量时,用逗号进行
int main()
分割。
{
仍然是3大部分,用;分割
int i,sum;
for( i=1, sum=0; i<=100; i++)
{
sum=sum+i;
}
cout<<“Sum: “<<sum<<“\n”;
return 0;
}
-17-
int i=1,sum=0; for( ; i<=100; )
sum=sum+i;
循环执行sum=sum+i,而不会执行 i++,导致死循环。
养成将循环语句放在{ }内作为复 语句的良好习惯,不管是否只有 1条语Baidu Nhomakorabea。
i++;
cout<<“Sum: “<<sum<<“\n”;
return 0;
}
-23-
int x=0, count=0;
循环中让while的条件为true,构 造1个无限循环。
在循环体内,调用break语句,可 立即停止循环的执行。
while( true )
使用while( true )结构时,要确
{ x++;
保循环能够停止。
if(x%14==0)
{
cout<<x<<" ";
count++;
cout<<x<<“\t”<<y<<“\t”<<z<<“\n”;
}
} return 0;
“\t”表示制表符。 分析:循环体执行31×31×31,循环时x、y
确定后,z就会确定,不需要再循环。此外,
每种人的循环范围不一定都是30。
-31-
缩小穷举范围
int main() {
int x,y,z; cout<<"Man \t Women \t Children\n“; for(x=0;x<=16;x++)
第04章控制程序流程
本章内容安排
while循环 do~while循环 for循环 高级循环 switch
-2-
循环的概念
计算机擅长的工作之一是重复做相同的事情。 许多编程任务可以通过重复相同的操作来完成,通
过指定次数或设定条件来控制执行过程。多次重复 执行的结构称为循环,每一次循环称为迭代。 while、do~while、for
循环的典型错误
#include <iostream> using namespace std; int main()
{
int i=1,sum=0;
while(i<=100) ; {
sum+=i; i++;
while循环后面不能加分号,否则 while一直执行空语句,导致i无 法递增,死循环。
}
cout<<“Sum: “<<sum<<“\n”; return 0; }
int main()
{
int x=0;
while( x<100 )
{
cout<< x <<" ";
x++; } return 0;
假如循环语句中没有x++,则while循环 的条件永远为真,导致循环一直执行, 称为无限循环或死循环。
}
-5-
显示0~99,每行5个
#include <iostream> using namespace std; int main() {
-30-
三重循环求解
int main()
{
int x,y,z;
cout<<"Man \t Women \t Children\n“;
for(x=0;x<=30;x++)
for(y=0;y<=30;y++)
for(z=0;z<=30;z++)
{
if(x+y+z==30 && 3*x+2*y+z==50)
continue; } cout<<x<<" "; count++; } return 0; }
在循环中遇到continue语句,将 跳过余下的语句,执行下一次 迭代。
break结束当前循环,而continue 结束本次迭代。
-8-
显示前20个整除14的正整数
#include <iostream> using namespace std; int main() {
继续执行循环。 表达式3:修改计数变量的值。 3个表达式之间用分号分割。
{
sum+=i;
}
cout<<“Sum: “<<sum<<“\n”;
return 0;
}
-15-
本章内容安排
while循环 do~while循环 for循环 高级循环 switch
-16-
1、for的变化形式1
#include <iostream>
for的变化形式2
#include <iostream>
using namespace std;
int main() {
int i=1,sum=0;
3个表达式中的任意1个可以为空, 但对应的分号不能省略。
for( ; i<=100; i++ )
{
sum=sum+i;
}
cout<<“Sum: “<<sum<<“\n”;
int x=0; while( x<100 ) {
cout<< x <<" "; x++; if(x%5==0) cout<<endl; } return 0; 递增x,每当x是5的倍数时,输出回车。 }
-6-
显示前20个整除14的正整数
#include <iostream> using namespace std; int main() {
return 0;
}
-18-
for的变化形式3
#include <iostream>
using namespace std;
int main()
{ int i=1,sum=0; for( ; i<=100; )
将表达式3转移到循环体内部,已 经退化为while循环。
{
sum=sum+i;
i++;
} cout<<“Sum: “<<sum<<“\n”; return 0; }
} while (badger>0);
cout<<"\n";
return 0;
}
-12-
本章内容安排
while循环 do~while循环 for循环 高级循环 switch
-13-
for循环
for循环将设置计数变量初值、检查条件、修改计 数变量合并到1条语句中。
for(表达式1; 表达式2;表达式3)
-29-
穷举法
通过两个方程解3个未知数,这是一个不定方程, 应该有多组解,用代数方法很难求解。
利用计算机编写程序,通过“穷举法”可以列举出 所有可能的解。所谓“穷举法”,就是让计算机根 据所有可能的情况,逐一去验证,从而找出所有满 足要求的“解” 。
由于总人数为30人,所以x、y和z的取值范围一定 为0~30并且为整数,在编程时,我们可以让x、y 和z都从0循环到30,然后验证看哪个组合能满足方 程式。
}
if(count>19)
break;
}
return 0;
}
-7-
显示前20个整除14的正整数
#include <iostream> using namespace std; int main() {
int x=0, count=0; while( count<19 ) {
x++; if(x%15!=0) {
-25-
3、循环的嵌套
在循环体内,可以包含另一个循环,从而构成循环 的嵌套。
外部循环每次迭代时,内部循环都将完整循环1次
-26-
输出字符矩形
#include <iostream> using namespace std; int main() {
int rows,columns; char character; cout<<"How many rows? "; cin>>rows; cout<<"How many columns? "; cin>>columns; cout<<"What character to display? "; cin>>character; cout<<"\n"; … }
-19-
for的变化形式4
#include <iostream>
using namespace std;
int main()
{ int i=1,sum=0; for( ; ; )
将3个表达式全部移出,退化为 while(true)结构。
{
sum = sum+i;
if( i>=100 )
break;
for( i=1; i<=100; i++ ) ; 语句(;)。
{
真正的循环体sum+=i没有执行。
sum+=i;
}
cout<<“Sum: “<<sum<<“\n”;
return 0;
}
-22-
循环的典型错误
#include <iostream>
using namespace std;
int main() {
using namespace std;
int main()
{
int badger;
cout<<"How many badgers?";
cin>>badger;
do
不要遗漏语句最后的;号。
{
无论条件如何设置,do~while循
cout<<"Badger "; 至少执行1次。
badger--;
break和continue仍然有效。
i++;
}
cout<<“Sum: “<<sum<<“\n”;
return 0;
}
-20-
for的变化形式5
#include <iostream>
using namespace std; int main() {
将循环体内的语句转移到某个表达式 中,不提倡这种用法。
第3部分为逗号表达式,顺序执行
int i=1, sum=0;
while在执行循环前检查条件,如果此时条件为 false,则一次循环也不执行。
do~while在循环之后检查条件,条件为true,继 续循环,条件为false结束循环。
do {
循环体语句; } while(表达式);
循环体语句 T
表达式 F
-11-
重复显示单词指定次数
#include <iostream>
-3-
while循环
在指定条件为true的情况下,程序重复执行,直到 指定条件变为false。
条件放在while之后的()内,循环执行的语句放 在一对{}内。
while(表达式) {
循环体语句; }
循环体语句
T
表达式
F
-4-
显示0~99
#include <iostream>
using namespace std;
-24-
循环的典型错误
#include <iostream> using namespace std; int main()
{
int i=1,sum=0;
do
{ sum+=i; i++;
do~while循环的结束必须有; 否则无法通过编译。
}while(i<=100)
cout<<“Sum: “<<sum<<“\n”; return 0; }
-27-
输出字符矩形
#include <iostream> using namespace std; int main() {…
for( int i=0; i<rows; i++ ) {
for( int j=0; j<columns; j++) {
cout<<character; } cout<<"\n"; } return 0; }
int x=0, count=0; while( count<19 ) {
x+=14; cout<<x<<" "; count++; } return 0; }
14倍数,从14开始,依次递增14。
-9-
本章内容安排
while循环 do~while循环 for循环 高级循环 switch
-10-
do~while循环
-28-
马克思手稿中的数学问题
共有30个人,其中有男人、女人和小孩,他们在一 家饭馆吃饭共花费了50先令,其中每个男人花费3 先令,每个女人花费2先令,每个小孩各花1先令, 问30个人中男人、女人和小孩各几人?
设男人、女人和小孩的人数各为x、y、z,则通过 题意可以列出下面的方程。 x+y+z=30 3x+2y+z=50
{
循环体;
}
表达式3
T 循环体语句
表达式1
表达式2 F
-14-
计算1~100的和
#include <iostream>
using namespace std; 表达式1:完成计数变量初始化。
int main()
表达式2:检查条件,确定是否
{ int i,sum=0; for(i=1;i<=100;i++)
for( i=1; i<=100; sum=sum+i, i++ )
{
;
}
cout<<“Sum: “<<sum<<“\n”;
return 0;
}
-21-
2、循环的典型问题
#include <iostream>
using namespace std;
int main()
{
int i,sum=0;
此时的for循环,执行了100次空
using namespace std; 初始化多个变量时,用逗号进行
int main()
分割。
{
仍然是3大部分,用;分割
int i,sum;
for( i=1, sum=0; i<=100; i++)
{
sum=sum+i;
}
cout<<“Sum: “<<sum<<“\n”;
return 0;
}
-17-
int i=1,sum=0; for( ; i<=100; )
sum=sum+i;
循环执行sum=sum+i,而不会执行 i++,导致死循环。
养成将循环语句放在{ }内作为复 语句的良好习惯,不管是否只有 1条语Baidu Nhomakorabea。
i++;
cout<<“Sum: “<<sum<<“\n”;
return 0;
}
-23-
int x=0, count=0;
循环中让while的条件为true,构 造1个无限循环。
在循环体内,调用break语句,可 立即停止循环的执行。
while( true )
使用while( true )结构时,要确
{ x++;
保循环能够停止。
if(x%14==0)
{
cout<<x<<" ";
count++;
cout<<x<<“\t”<<y<<“\t”<<z<<“\n”;
}
} return 0;
“\t”表示制表符。 分析:循环体执行31×31×31,循环时x、y
确定后,z就会确定,不需要再循环。此外,
每种人的循环范围不一定都是30。
-31-
缩小穷举范围
int main() {
int x,y,z; cout<<"Man \t Women \t Children\n“; for(x=0;x<=16;x++)
第04章控制程序流程
本章内容安排
while循环 do~while循环 for循环 高级循环 switch
-2-
循环的概念
计算机擅长的工作之一是重复做相同的事情。 许多编程任务可以通过重复相同的操作来完成,通
过指定次数或设定条件来控制执行过程。多次重复 执行的结构称为循环,每一次循环称为迭代。 while、do~while、for
循环的典型错误
#include <iostream> using namespace std; int main()
{
int i=1,sum=0;
while(i<=100) ; {
sum+=i; i++;
while循环后面不能加分号,否则 while一直执行空语句,导致i无 法递增,死循环。
}
cout<<“Sum: “<<sum<<“\n”; return 0; }
int main()
{
int x=0;
while( x<100 )
{
cout<< x <<" ";
x++; } return 0;
假如循环语句中没有x++,则while循环 的条件永远为真,导致循环一直执行, 称为无限循环或死循环。
}
-5-
显示0~99,每行5个
#include <iostream> using namespace std; int main() {
-30-
三重循环求解
int main()
{
int x,y,z;
cout<<"Man \t Women \t Children\n“;
for(x=0;x<=30;x++)
for(y=0;y<=30;y++)
for(z=0;z<=30;z++)
{
if(x+y+z==30 && 3*x+2*y+z==50)
continue; } cout<<x<<" "; count++; } return 0; }
在循环中遇到continue语句,将 跳过余下的语句,执行下一次 迭代。
break结束当前循环,而continue 结束本次迭代。
-8-
显示前20个整除14的正整数
#include <iostream> using namespace std; int main() {
继续执行循环。 表达式3:修改计数变量的值。 3个表达式之间用分号分割。
{
sum+=i;
}
cout<<“Sum: “<<sum<<“\n”;
return 0;
}
-15-
本章内容安排
while循环 do~while循环 for循环 高级循环 switch
-16-
1、for的变化形式1
#include <iostream>
for的变化形式2
#include <iostream>
using namespace std;
int main() {
int i=1,sum=0;
3个表达式中的任意1个可以为空, 但对应的分号不能省略。
for( ; i<=100; i++ )
{
sum=sum+i;
}
cout<<“Sum: “<<sum<<“\n”;
int x=0; while( x<100 ) {
cout<< x <<" "; x++; if(x%5==0) cout<<endl; } return 0; 递增x,每当x是5的倍数时,输出回车。 }
-6-
显示前20个整除14的正整数
#include <iostream> using namespace std; int main() {
return 0;
}
-18-
for的变化形式3
#include <iostream>
using namespace std;
int main()
{ int i=1,sum=0; for( ; i<=100; )
将表达式3转移到循环体内部,已 经退化为while循环。
{
sum=sum+i;
i++;
} cout<<“Sum: “<<sum<<“\n”; return 0; }
} while (badger>0);
cout<<"\n";
return 0;
}
-12-
本章内容安排
while循环 do~while循环 for循环 高级循环 switch
-13-
for循环
for循环将设置计数变量初值、检查条件、修改计 数变量合并到1条语句中。
for(表达式1; 表达式2;表达式3)
-29-
穷举法
通过两个方程解3个未知数,这是一个不定方程, 应该有多组解,用代数方法很难求解。
利用计算机编写程序,通过“穷举法”可以列举出 所有可能的解。所谓“穷举法”,就是让计算机根 据所有可能的情况,逐一去验证,从而找出所有满 足要求的“解” 。
由于总人数为30人,所以x、y和z的取值范围一定 为0~30并且为整数,在编程时,我们可以让x、y 和z都从0循环到30,然后验证看哪个组合能满足方 程式。
}
if(count>19)
break;
}
return 0;
}
-7-
显示前20个整除14的正整数
#include <iostream> using namespace std; int main() {
int x=0, count=0; while( count<19 ) {
x++; if(x%15!=0) {
-25-
3、循环的嵌套
在循环体内,可以包含另一个循环,从而构成循环 的嵌套。
外部循环每次迭代时,内部循环都将完整循环1次
-26-
输出字符矩形
#include <iostream> using namespace std; int main() {
int rows,columns; char character; cout<<"How many rows? "; cin>>rows; cout<<"How many columns? "; cin>>columns; cout<<"What character to display? "; cin>>character; cout<<"\n"; … }
-19-
for的变化形式4
#include <iostream>
using namespace std;
int main()
{ int i=1,sum=0; for( ; ; )
将3个表达式全部移出,退化为 while(true)结构。
{
sum = sum+i;
if( i>=100 )
break;