Presentation is loading. Please wait.

Presentation is loading. Please wait.

C#程序设计基础 $5 流程控制.

Similar presentations


Presentation on theme: "C#程序设计基础 $5 流程控制."— Presentation transcript:

1 C#程序设计基础 $5 流程控制

2 流程控制 选择结构 循环结构 跳转结构

3 选择结构

4 选择结构 if (exp) statement; True exp statement False Exit

5 选择结构 if (exp) statement else statement1; False exp statement1 True
Exit

6 选择结构 if (exp) statement; else if (exp1) statement1; else statement2;
False False exp1 exp2 statement2 True True statement statement1 Exit if语句中嵌套中,每个else分支都与其前面最近的一条不带else分支的if语句组成if-else对。

7 选择结构 switch(exp) { case A: s1; break; case B: s2; break; case C: s3; break; …… default: s; break; } if (exp == A) s1; else if (exp == B) s2; else if (exp == C) s3; …… else s;

8 选择结构示例 //程序清单P5_1.cs: using System; namespace P5_1 {
class SwitchSample static void Main() Console.WriteLine("请输入1~5之间的一个分数:"); int x = int.Parse(Console.ReadLine()); switch (x) case 5: Console.WriteLine("优秀"); break; case 4: Console.WriteLine("良好"); break; case 3: Console.WriteLine("及格"); default: //3分以下均不及格 Console.WriteLine("不及格"); }

9 循环结构

10 while循环结构 while (exp) statement; False exp Exit True 修改exp statement

11 while循环示例 //程序清单P5_2.cs: using System; namespace P5_2 {
class WhileCycleSample static void Main() Console.WriteLine("请输入1~5之间的一个分数(按X键退出):"); char ch = Console.ReadKey().KeyChar; while (ch != 'x' && ch != 'X') switch (ch) case '5': Console.WriteLine("优秀"); break; case '4': Console.WriteLine("良好"); case '3': Console.WriteLine("及格"); break; case '2': Console.WriteLine("不及格"); case '1': default: Console.WriteLine("请输入1~5之间的整数"); } Console.WriteLine("请输入分数(按X键退出):"); ch = Console.ReadKey().KeyChar;

12 do-while循环结构 do statement while (exp); statement True False exp Exit

13 do-while循环示例 class CzMath { public static ulong Fact(uint x)
//程序清单P5_3.cs: using System; namespace P5_3 { class DoWhileCycleSample static void Main() Console.Write("请输入计算项数:"); uint n; uint.TryParse(Console.ReadLine(), out n); double e = 1; /*uint i = 1; do e += 1.0 / CzMath.Fact(i); i++; } while(i <= n);*/ /*for (uint i = 1; i <= n; i++) e += 1.0 / CzMath.Fact(i);*/ for (uint i = 1, j = 1; i <= n; i++) j *= i; e += 1.0 / j; Console.WriteLine("自然对数e的近似值为" + e); class CzMath { public static ulong Fact(uint x) ulong result = 1; do result *= x--; } while (x > 1); return result;

14 for循环结构 for(init; cond; iter) statement; init False exp Exit True iter

15 for循环示例 //程序清单P5_4.cs: using System; namespace P5_4 {
class ForCycleSample static void Main() Console.Write("请输入三角形边长:"); int n; int.TryParse(Console.ReadLine(), out n); if (n <= 0) return; int[,] a = new int[n, n]; a[0, 0] = 1; a[1, 0] = 1; a[1, 1] = 1; //计算第2行之后的元素 for (int i = 2; i < n; i++) { a[i, 0] = 1; a[i, i] = 1; for (int j = 1; j < i + 1; j++) a[i, j] = a[i - 1, j - 1] + a[i - 1, j]; } //打印输出 for (int i = 0; i < n; i++) for (int j = 0; j <= i; j++) Console.Write("{0} ", a[i, j]); Console.WriteLine();

16 循环结构 foreach(T x in array) statement;
for(int i=0; i<array.Length; i++) statement; 注意:不能修改array内容!

17 foreach循环示例 //程序清单P5_5.cs: using System; namespace P5_5 {
class SortSample static void Main() int[] iArray = { 7, 19, 5, -6, 0, 7, 3, 12, 11, -3 }; Console.WriteLine("排序前"); for (int i = 0; i < iArray.Length; i++) Console.Write("{0}, ", iArray[i]); BubbleSort(iArray); Console.WriteLine("\r\n排序后"); } public static void BubbleSort(int[] array) { int tmp; for (int i = array.Length; i > 0; i--) for (int j = 0; j < i - 1; j++) if (array[j] > array[j + 1]) tmp = array[j]; array[j] = array[j + 1]; array[j + 1] = tmp; }

18 跳转结构

19 break语句 break语句用于跳出当前的代码段 适用结构 while do-while for foreach switch

20 break语句示例 //程序清单P5_7.cs: using System; namespace P5_7 {
class BreakSample static void Main() Console.WriteLine("请输入一个正整数:"); ulong n, i; ulong.TryParse(Console.ReadLine(), out n); for (i = 2; i <= n / 2; i++) if (n % i == 0) Console.WriteLine("{0}不是一个素数", n); break; } if (i > n / 2) Console.WriteLine("{0}是一个素数", n); } }}

21 continue语句 continue语句跳出循环,并将控制权转移到这些语句的开始点。即结束本次循环,开始下一次循环。 适用结构 while
do-while for foreach

22 continue语句示例 //程序清单P5_8.cs: using System; namespace P5_8 {
class ContinueSample static void Main() Console.WriteLine("请输入一个字符串:"); string str = Console.ReadLine(); if (str == "") return; Console.Write(str[0]); int i = 0; while (i < str.Length - 1) if (str[i++] == str[i]) continue; else Console.Write(str[i]); }

23 return语句 return语句用于方法的返回,将控制权转移给方法的调用程序。 //程序清单P5_9.cs: using System;
namespace P5_9 { class ReturnSample static void Main() Console.WriteLine("请输入身份证号码:"); string s = Console.ReadLine(); if (s.Length != 15 && s.Length != 18) Console.WriteLine("长度不正确"); return; } //继续执行程序 if ((s.Length == 15 && s[14] % 2 == 0) || (s.Length == 18 && s[16] % 2 == 0)) Console.WriteLine("性别为女"); else Console.WriteLine("性别为男");

24 goto语句 goto语句用于程序指令无条件跳转。使用goto语句时需要在程序中预先声明一个标号,并在goto语句关键字后面指定该标号,从而将程序控制权转移给标号之后的语句。 不建议使用,不做介绍


Download ppt "C#程序设计基础 $5 流程控制."

Similar presentations


Ads by Google