当前位置:文档之家› 第3章 结构化程序设计

第3章 结构化程序设计


【例3-7】用for语句计算1+2+…+100。
static void Main(string[] args) { int Sum,i; Sum = 0; for(i=1;i<=100;i++) Sum += i; Console.WriteLine("Sum is " + Sum); Console.Read(); }
for循环的一些变化特点:
(1)for循环语句的“初始表达式”和“变量增值表达式”可 引入逗号运算符“,”,这样可以对若干个变量赋初值或 增值。 static void Main(string[] args) { int Sum,i; for(Sum=0,i=1;i<=100;i++) Sum += i; Console.WriteLine("Sum is " + Sum); for(Sum=0,i=1;i<=100;Sum+=i,i++) ; //循环体是一个空语句 Console.WriteLine("Sum is " + Sum); }
程序运行结果:
3.4 跳转语句
3.4.1 continue语句
continue语句只能用于循环语句之中,它的作用是结束本轮循环,不再 执行余下的循环体语句 。 语法形式: continue; 【例3-13】将1~100之间能被7整除的数输出。 static void Main(string[] args) { for(int i=1;i<=100;i++) { if(i%7 != 0)continue;//如果I不能被7整除,则直接进入下一轮循环 Console.WriteLine(i);//只有能被7整除的数,才会执行到此 } }
3种循环语句的执行流程图
Sum=0, i=1
Sum=0,i=1
假 i<=100 假 表达式 真 真 循环体语句 输出Sum 表 达 式 假 真 Sum+=i; i++ 循环体语句 真
初始表达式
Sum+=i, i++
假 条件 真
i<=100 假 输出Sum
循环语句体
变量增值表达式
(a)

(a)
(b)
(b)
3.2.2 switch语句
语法形式: switch (<表达式>) { case <常量表达式1>:<语句序列1> case <常量表达式2>:<语句序列2> …… case <常量表达式n>:<语句序列n> default:<语句序列n+1> }
【例3-4】 用switch语句编写程序,根据输入的成绩输出 相应的A、B、C、D和E等级,其中A:90100;B:80-89;C:70-79;D:60-69;E :0-59。
图3 – 6 for语句的执行过程
3.3.4 foreach 语句
语法形式:
C#中新增的循环语句,它对于处理数组及集合等数据类型特 别简便 。 foreach(类型 标识符 { <循环体语句> } in 表达式)
【例3-11】使用foreach语句输出数组中的所 有数 static void Main(string[] args) { int[] list={ 10,22,34,56,87,11}; foreach(int i in list) Console.Write("{0,-5}",i); } 程序运行结果为: 10 22 34 56 87 11
3. 嵌套的if语句
语法形式: if ( <条件1> ) <语句1> else if ( <条件2> )< 语句2> else if ( <条件3> )< 语句3> ┇ else <语句n>
真 条件1 假 真 条件2 假 语句2 语句1

条件n-1
语句n-1
假 语句n
图3-3 if语句嵌套的执行过程
static void Main(string[] args) { int score,temp=-1; Console.Writeline("请输入一个学生成绩:"); string str=Console.Readline(); score = int.Parse(str); if(score<0 || score>100) { Console.Writeline ("成绩输入有误");return;} temp=score/10; switch(temp) { case 10: case 9: Console.Writeline ("A");break; case 8: Console.Writeline ("B");break; case 7: Console.Writeline ("C");break; case 6: Console.Writeline ("D");break; default: Console.Writeline ("E");break; } }
第3章 结构化程序设计
本章要点
理解三种基本结构的概念 明确选择结构和循环结构的条件构成 掌握跳转语句的执行流程和使用方法 较熟练地使用C#的三种基本结构,进行程 序设计
3.1 赋值语句
3.1.1 简单赋值语句
<变量名> = <表达式>;
3.1.2 复合赋值语句
<变量> <双目运算符> = <表达式>; 等价于 <变量> = <变量> <双目运算符> <表达式>;
方法 2: 嵌套在if子句中。 static void Main(string[] args) { int x, y; Console.WriteLine(“please input x:”); string s = Console.ReadLine(); x = int.Parse(s); if(x !=0 ) 内 嵌 if (x<0) y = -1; if…else else y = 1; else y=0; Console.WriteLine(“x={0}, y={1}”,x,y); }
• 2. if-else语句
• 语法形式:
if (<条件>) <语句1> else <语句2>
如果“条件”为 “真”,则执行 “语句1”;否则 执行“语句2”
条件
假(0)
真(非0)
语句1 语句2
如图3-2所示
图3-2 if-else语句的执行过程
例如:
if(a+b>c && b+c >a && a+c>b)//判定合法性 { //求三角形面积 p = (a+b+c)/2; s = Math.sqrt(p*(p-a)*(p-b)*(p-c)); } else Console.WriteLine(“三角形的三边数据有 错!”);
3.3 循环语句
3.3.1 while语句 语法形式:
while(<表达式>) { <循环体语句> }
如果表达式为真(true), 则执行循环体语句。然 后重新计算表达式的值, 并再次判断;如果表达 式的值为假(false), 则退出循环结构。
【例3-5】 利用while语句求,计算 1+2+…+100的值,并打印计算结果。
3.3.3 for 语句
语法形式:
初始表达式是设置循环 C#的for循环是循环语句中最具特色的。它功能较强、灵活 控制变量的初值;条件 多变和使用广泛。 是bool类型,作为循环 控制条件;变量增值表 达式是设置循环控制变 量的增值(正负均可)。
for(<初始表达式>;<条件>;<变量增值表达式>) { <循环体语句> }
3.2 选择语句
3.2.1 if语句
1.if语句 语法形式: 如果“条件” 为“真”,则 执行“语句”
if (<条件> ) <语句>
假(0) 条件 真(非0) 语句
其执行过程如图3-1所示
图3-1 if语句的执行过程
例如: if(x<0) x = -x;
//判定合法性
//取x的绝对值
if(a+b>c && b+c >a && a+c>b) { //求三角形面积 p = (a+b+c)/2; s = Math.sqrt(p*(p-a)*(p-b)*(p-c)); }
(2) for循环的三个表达式可以任意缺省,如果“条件”缺省就约定它 的值是true。但不管哪个表达式缺省,其相应的分号“;”不能缺省 。 static void Main(string[] args)
{
int Sum,i; for(Sum=0,i=1;i<=100;i++) Sum += i; Console.WriteLine("Sum is " + Sum); for(Sum=0,i=1;i<=100;Sum+=i,i++) ; //循环体是一个空语句 Console.WriteLine("Sum is " + Sum); }
相关主题