程序流程和异常处理
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
do…while语法的一般格式为: do 语句 while (布尔表达式);
do ... while 语句
do
语句
while(布尔表达式);
功能: 1 执行循环体语句; 2 计算表达式,如果为 true, 并继续第1步;
如果为false,则退出 循环
语句
false 表达式?
true
do…while的使用
形成死循环
分号不能省 略哦!
在for循环中定义变量
可以在这里定义变量
for(int i=1; i<=100; i++) sum = sum + i;
在for中定义的变量只在该循环语句内有效 ,在循环语句外不能访问
4.3.2 while循环
可以用于不知道循环次数的情况;用于在循环时判断 是否满足某个条件。
sum = sum + i; i=i+1;
死循环:不会自动 终止的循环
}
这个语句让循环条件可 以不成立
死循环
i=1;
while(i<=100)
{ sum = sum + i; // i=i+1;
运行时,死循环占 用大量CPU时间
}
去掉该语句,形
成死循环
while(true) 可以形成死循环
条件恒为true
foreach循环常用在遍历数组时用到。
4.3.1 for循环
for循环语句 for循环常常用于已知循环次数的情况,使用该
循环时,测试是否满足某个条件,如果满足条件, 则进入下一次循环,否则,退出该循环。 格式:
for(表达式1;布尔表达式2;表达式3) 单语句或{ 循环语句序列 }
三元运算表达式
sum=sum+k; } label1.Text="从1加到100值为"+sum.ToString(); }
程序的运行结果如图所示的左图,单击“计算 ”按钮,将在标签上显示运行结果。
程序运行结果
【例子】计算n!,假设n=10。
分析:该例实现阶乘的运算,可以使用改变乘数的 值进行实现,使用循环可以方便的实现该类问题。 程序的运行结果如图所示。
建立应用程序用户界面与设置对象属性,如图所示 。
用户界面及程序运行结果
private void button1_Click(object sender, System.EventArgs e)
{
int n=0;
float h;
h=float.Parse(textBox1.Text); while (h<8844430)//未到达8844.43 m时,重复对折 {
你想累死我啊!
例:求 1+2+3+...+100的值
sum = 0; sum = sum + 1; sum = sum + 2; sum = sum + 3; ........... sum = sum + 100; Console.WriteLine(sum);
sum = 0; i = 1; i:1 sum = sum + i; i = i+1; i:2 sum = sum + i; i = i+1; i:3 sum = sum + i; i = i+1;
while( true ) {
Console.WriteLine( "Hello"); }
Hello Hello Hello Hello Hello Hello Hello
计算1+2+…+100 for循环和while 循环
int sum = 0, i; for( i=1 ; i<=100 ; i++) {
第4章 程序流程和异常处理(2)
顺序结构 选择结构:if语句、switch语句 循环结构:for语句、while语句、do...while语 句和foreach语句 跳转语句:goto、break、continue、return 、throw C#异常处理机制 创建和引发异常
现实生活中的循环
银行的ATM需要不停地 为不同的客户服务
........... i:100 sum = sum + i; i = i+1; i:101 Console.WriteLine(sum);
循环条件: i<=100
计算1+2+…+100的for循环流程
int sum = 0, i; for( i=1 ; i<=100 ; i++) {
sum = sum + i; } Console.WriteLine(sum);
n!=n*(n-1)*…*2*1
计算n!
编写【计算】按钮的Click(单击)事件代码为:
private void button1_Click(object sender, System.EventArgs e)
{ int sum,k; sum=1; for(k=1;k<=10;k++) { sum=sum*k; } textBox1.Text=sum.ToString();
• foreach语句用于循环访问数组或集合以获取所需信息 。当为数组或集合中的所有元素完成迭代后,控制传 递给foreach块之后的下一个语句 foreach( 类型名称 变量名称 in 数组或集合名称) { 循环体语句序列; }
while循环语句的格式为:
while (布尔表达式) 单语句或者语句块
布尔条件表达式是每次循环开始前进行判断的条件 ,当条件表达式的值为真时,执行循环;否则,退 出循环。该语句结构的流程图如图所示。
while 语句
格式:
while( 布尔表达式)
语句
功能: 1 如果布尔表达式为 false,直接跳出循环; 2 如果为true, 则执行 语句,并继续第1步
false 布尔表达式?
true
语句
while循环语句的使用
【例子】设有一张厚为x mm,面积足够大的纸,将
它不断地对折。试问对折多少次后,其厚度可达珠 穆朗玛峰的高度(8844.43 m)。
设对折后纸的厚度为h mm,计数器为n。在没有对折
时,纸厚为x mm,每对折一次,其厚度是上一次
的2倍,在未到达8844.43 m时,重复对折。在程 序中,纸的厚度就是对折后纸的厚度,所以用一个 变量h。
分析1:定义sum,连续写sum=sum+n; 分析2:该问题属于重复执行加法的问题,并且
参与运算的两个操作数不断的按规律增加。 该类问题可以通过循环进行解决。
例:求 1+2+3+...+100的值
sum = sum + i;
累加器
写完这100条语句,就 算出来了
sum = 0; sum = sum + 1; sum = sum + 2; sum = sum + 3; ........... sum = sum + 100; Console.WriteLine(sum);
n = n + 1; //计数器为n 对折次数 h = 2 * h ;//每对折一次,其厚度是上一次的2倍 }
textBox2.Text = n.ToString();
}
求 1+2+3+...+100的值 改成 while 循环:
循环条件 循环体语句 运行结果:
sum = 0; i = 1; sum = sum + i; i = i+1; sum = sum + i; i = i+1; sum = sum + i; i = i+1; ........... sum = sum + i; i = i+1; cout << sum << endl;
........... i:100 sum = sum + i; i = i+1; i:101 Console.WriteLine(sum);
这两条语句需要 循环执行
sum = 0; i = 1; i:1 sum = sum + i; i = i+1; i:2 sum = sum + i; i = i+1; i:3 sum = sum + i; i = i+1;
for(表达式1;布尔表达式2;表达式3) 语句
功能: 1 计算表达式1;
2 计算布尔表达式2,如 果结果为true, 则执行语 句,再计算表达式3,然 后重复本过程;
如果表达式2为false, 则退出循环
表达式1 false
布尔表达式2 true
语句
表达式3
for循环语句的使用
【例子】计算1+2+3+…100。使用for语句实现 。
sum = sum + i; } Console.WriteLine(sum);
sum = 0; i=1; while(i<=100) {
sum = sum + i; i = i + 1; } Console.WriteLine(sum);
for循环与while循环,功能完全相同(for 可以转化为while, while也可以转为for)
5050
while 运行流程分析
i=1;
while(i<=100) 1<=100 ...
{
true ...
sum = sum + i;
i源自文库+;
}
false
100<=100 101<=100
true
在while循环的循环体中一般应该有使循环条 件不成立的语句,否则会形成“死循环”;
i=1; while(i<=100) {
}
练习: 使用for语句,编程输出1~10的 每个整数的平方
static void Main(string[] args) { int s; for (int i = 1; i <= 10; i++) { s = i * i; Console.Write("{0}\t", s); } }
for语句的常见用法(1)
ATM业务
我们每天的生活和学习需要重复
食堂
生活中充满了循环
教室
宿舍
在编写程序过程中,往往出现相同类型操作需 要重复出现,如实现1+2+…+100,则需要做 99次加法,这类问题使用循环语句解决。即循环 语句用于实现语句块的重复执行。
C#中提供了四种不同的循环机制: ① for循环 ② while循环 ③ do…while循环 ④ foreach循环
do-while 的循环体至少被执行一次
int i=20; while(i<10) {
Console.WriteLine(i); i++; }
运行结果:
int i=20; do {
Console.WriteLine(i); i++; } while(i<10);
运行结果: 20
4.3.4 foreach循环
【例子】使用do…while语句实现1+2+3+…100。
int i=1, sum=0; do {
sum = sum + i; i = i + 1; } while(i <= 100); Console.WriteLine(sum);
运行结果: 5050
;是do...while语句的 一部分,不要遗忘
i: 循环变量 循环条件
int i; for(i=0; i<100 ; i++)
运行结果:
0 1 循环体被运行
{
赋初值
2 100次, 3
Console.WriteLine(i); 4 循环变量依次为
}
... 0 ~ 99
改变循环变量 ...
98
99
for语句的常见用法(2)
int i; for(i=1; i<=100; i++) {
例:求一个整数x所有位数之和
算法思路:x % 10 可以得到个位数字,x = x / 10可 以得到去掉个位数字后剩下的数字。 重复这个过程直到x变为0,可以依次得到所有数字
sum = 0;
while(x >0)
{
sum += x % 10;
学习编程语言的同时,也
x /= 10;
要学会用“计算机的思维
}
方式”,掌握计算机解决
Console.WriteLine(sum); 问题的方法:算法
4.3.3 do…while循环
do…while循环非常类似于while循环。 差别在于while循环的测试条件在每一次循环开始
时执行,而do…while循环的测试条件在每一次循环 体结束时进行判断。同样的,do…while可以解决一 些循环问题,但使用的频率较少。
运行流程分析
在窗体设计图上,双击按钮button1编写【计算】按 钮的Click(单击)事件代码为:
private void button1_Click(object sender, System.EventArgs e) {
int sum, k; sum=0; for(k=1;k<=100;k=k+1) {
Console.WriteLine(i); }
运行结果:
1
2
循环体也被运行
3
100次,
4
5
循环变量依次为
...
1 ~ 100
...
99
100
for语句的简化:
可以为空
int i=0;
可以为空
for( i=1 ; i<=100 ; i++)
Console.WriteLine(i);
可以为空,
认为是true
do ... while 语句
do
语句
while(布尔表达式);
功能: 1 执行循环体语句; 2 计算表达式,如果为 true, 并继续第1步;
如果为false,则退出 循环
语句
false 表达式?
true
do…while的使用
形成死循环
分号不能省 略哦!
在for循环中定义变量
可以在这里定义变量
for(int i=1; i<=100; i++) sum = sum + i;
在for中定义的变量只在该循环语句内有效 ,在循环语句外不能访问
4.3.2 while循环
可以用于不知道循环次数的情况;用于在循环时判断 是否满足某个条件。
sum = sum + i; i=i+1;
死循环:不会自动 终止的循环
}
这个语句让循环条件可 以不成立
死循环
i=1;
while(i<=100)
{ sum = sum + i; // i=i+1;
运行时,死循环占 用大量CPU时间
}
去掉该语句,形
成死循环
while(true) 可以形成死循环
条件恒为true
foreach循环常用在遍历数组时用到。
4.3.1 for循环
for循环语句 for循环常常用于已知循环次数的情况,使用该
循环时,测试是否满足某个条件,如果满足条件, 则进入下一次循环,否则,退出该循环。 格式:
for(表达式1;布尔表达式2;表达式3) 单语句或{ 循环语句序列 }
三元运算表达式
sum=sum+k; } label1.Text="从1加到100值为"+sum.ToString(); }
程序的运行结果如图所示的左图,单击“计算 ”按钮,将在标签上显示运行结果。
程序运行结果
【例子】计算n!,假设n=10。
分析:该例实现阶乘的运算,可以使用改变乘数的 值进行实现,使用循环可以方便的实现该类问题。 程序的运行结果如图所示。
建立应用程序用户界面与设置对象属性,如图所示 。
用户界面及程序运行结果
private void button1_Click(object sender, System.EventArgs e)
{
int n=0;
float h;
h=float.Parse(textBox1.Text); while (h<8844430)//未到达8844.43 m时,重复对折 {
你想累死我啊!
例:求 1+2+3+...+100的值
sum = 0; sum = sum + 1; sum = sum + 2; sum = sum + 3; ........... sum = sum + 100; Console.WriteLine(sum);
sum = 0; i = 1; i:1 sum = sum + i; i = i+1; i:2 sum = sum + i; i = i+1; i:3 sum = sum + i; i = i+1;
while( true ) {
Console.WriteLine( "Hello"); }
Hello Hello Hello Hello Hello Hello Hello
计算1+2+…+100 for循环和while 循环
int sum = 0, i; for( i=1 ; i<=100 ; i++) {
第4章 程序流程和异常处理(2)
顺序结构 选择结构:if语句、switch语句 循环结构:for语句、while语句、do...while语 句和foreach语句 跳转语句:goto、break、continue、return 、throw C#异常处理机制 创建和引发异常
现实生活中的循环
银行的ATM需要不停地 为不同的客户服务
........... i:100 sum = sum + i; i = i+1; i:101 Console.WriteLine(sum);
循环条件: i<=100
计算1+2+…+100的for循环流程
int sum = 0, i; for( i=1 ; i<=100 ; i++) {
sum = sum + i; } Console.WriteLine(sum);
n!=n*(n-1)*…*2*1
计算n!
编写【计算】按钮的Click(单击)事件代码为:
private void button1_Click(object sender, System.EventArgs e)
{ int sum,k; sum=1; for(k=1;k<=10;k++) { sum=sum*k; } textBox1.Text=sum.ToString();
• foreach语句用于循环访问数组或集合以获取所需信息 。当为数组或集合中的所有元素完成迭代后,控制传 递给foreach块之后的下一个语句 foreach( 类型名称 变量名称 in 数组或集合名称) { 循环体语句序列; }
while循环语句的格式为:
while (布尔表达式) 单语句或者语句块
布尔条件表达式是每次循环开始前进行判断的条件 ,当条件表达式的值为真时,执行循环;否则,退 出循环。该语句结构的流程图如图所示。
while 语句
格式:
while( 布尔表达式)
语句
功能: 1 如果布尔表达式为 false,直接跳出循环; 2 如果为true, 则执行 语句,并继续第1步
false 布尔表达式?
true
语句
while循环语句的使用
【例子】设有一张厚为x mm,面积足够大的纸,将
它不断地对折。试问对折多少次后,其厚度可达珠 穆朗玛峰的高度(8844.43 m)。
设对折后纸的厚度为h mm,计数器为n。在没有对折
时,纸厚为x mm,每对折一次,其厚度是上一次
的2倍,在未到达8844.43 m时,重复对折。在程 序中,纸的厚度就是对折后纸的厚度,所以用一个 变量h。
分析1:定义sum,连续写sum=sum+n; 分析2:该问题属于重复执行加法的问题,并且
参与运算的两个操作数不断的按规律增加。 该类问题可以通过循环进行解决。
例:求 1+2+3+...+100的值
sum = sum + i;
累加器
写完这100条语句,就 算出来了
sum = 0; sum = sum + 1; sum = sum + 2; sum = sum + 3; ........... sum = sum + 100; Console.WriteLine(sum);
n = n + 1; //计数器为n 对折次数 h = 2 * h ;//每对折一次,其厚度是上一次的2倍 }
textBox2.Text = n.ToString();
}
求 1+2+3+...+100的值 改成 while 循环:
循环条件 循环体语句 运行结果:
sum = 0; i = 1; sum = sum + i; i = i+1; sum = sum + i; i = i+1; sum = sum + i; i = i+1; ........... sum = sum + i; i = i+1; cout << sum << endl;
........... i:100 sum = sum + i; i = i+1; i:101 Console.WriteLine(sum);
这两条语句需要 循环执行
sum = 0; i = 1; i:1 sum = sum + i; i = i+1; i:2 sum = sum + i; i = i+1; i:3 sum = sum + i; i = i+1;
for(表达式1;布尔表达式2;表达式3) 语句
功能: 1 计算表达式1;
2 计算布尔表达式2,如 果结果为true, 则执行语 句,再计算表达式3,然 后重复本过程;
如果表达式2为false, 则退出循环
表达式1 false
布尔表达式2 true
语句
表达式3
for循环语句的使用
【例子】计算1+2+3+…100。使用for语句实现 。
sum = sum + i; } Console.WriteLine(sum);
sum = 0; i=1; while(i<=100) {
sum = sum + i; i = i + 1; } Console.WriteLine(sum);
for循环与while循环,功能完全相同(for 可以转化为while, while也可以转为for)
5050
while 运行流程分析
i=1;
while(i<=100) 1<=100 ...
{
true ...
sum = sum + i;
i源自文库+;
}
false
100<=100 101<=100
true
在while循环的循环体中一般应该有使循环条 件不成立的语句,否则会形成“死循环”;
i=1; while(i<=100) {
}
练习: 使用for语句,编程输出1~10的 每个整数的平方
static void Main(string[] args) { int s; for (int i = 1; i <= 10; i++) { s = i * i; Console.Write("{0}\t", s); } }
for语句的常见用法(1)
ATM业务
我们每天的生活和学习需要重复
食堂
生活中充满了循环
教室
宿舍
在编写程序过程中,往往出现相同类型操作需 要重复出现,如实现1+2+…+100,则需要做 99次加法,这类问题使用循环语句解决。即循环 语句用于实现语句块的重复执行。
C#中提供了四种不同的循环机制: ① for循环 ② while循环 ③ do…while循环 ④ foreach循环
do-while 的循环体至少被执行一次
int i=20; while(i<10) {
Console.WriteLine(i); i++; }
运行结果:
int i=20; do {
Console.WriteLine(i); i++; } while(i<10);
运行结果: 20
4.3.4 foreach循环
【例子】使用do…while语句实现1+2+3+…100。
int i=1, sum=0; do {
sum = sum + i; i = i + 1; } while(i <= 100); Console.WriteLine(sum);
运行结果: 5050
;是do...while语句的 一部分,不要遗忘
i: 循环变量 循环条件
int i; for(i=0; i<100 ; i++)
运行结果:
0 1 循环体被运行
{
赋初值
2 100次, 3
Console.WriteLine(i); 4 循环变量依次为
}
... 0 ~ 99
改变循环变量 ...
98
99
for语句的常见用法(2)
int i; for(i=1; i<=100; i++) {
例:求一个整数x所有位数之和
算法思路:x % 10 可以得到个位数字,x = x / 10可 以得到去掉个位数字后剩下的数字。 重复这个过程直到x变为0,可以依次得到所有数字
sum = 0;
while(x >0)
{
sum += x % 10;
学习编程语言的同时,也
x /= 10;
要学会用“计算机的思维
}
方式”,掌握计算机解决
Console.WriteLine(sum); 问题的方法:算法
4.3.3 do…while循环
do…while循环非常类似于while循环。 差别在于while循环的测试条件在每一次循环开始
时执行,而do…while循环的测试条件在每一次循环 体结束时进行判断。同样的,do…while可以解决一 些循环问题,但使用的频率较少。
运行流程分析
在窗体设计图上,双击按钮button1编写【计算】按 钮的Click(单击)事件代码为:
private void button1_Click(object sender, System.EventArgs e) {
int sum, k; sum=0; for(k=1;k<=100;k=k+1) {
Console.WriteLine(i); }
运行结果:
1
2
循环体也被运行
3
100次,
4
5
循环变量依次为
...
1 ~ 100
...
99
100
for语句的简化:
可以为空
int i=0;
可以为空
for( i=1 ; i<=100 ; i++)
Console.WriteLine(i);
可以为空,
认为是true