55
Microsoft © 第第 第第 一: 第第第C# 第第第第第第第 第第第C# 第第第第第第 第第第 第第第第第第第第第 第第第C# 第第 第第第 第第第第 .NET 第第第 第第 第第第 第第 ADO.NET 第第 第第 第第第 第第第第 Windows 第第第第第 第第第 C# 第第第第第第 第 X ML Web Service 第第第 第第 Web 第第第第 第第 第第第第第第第 一: 第第 第第第 第第第第第第 C# 程程程程程程程程程程

第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Embed Size (px)

DESCRIPTION

C# 程序设计语言课程内容. 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于 .NET 的应用 程序 第七章:使用 ADO.NET 访问 数据. 第八章:创建基于 Windows 的应用程序 第九章:在 C# 应用程序中使 用 XML Web Service 第十章:创建 Web 应用程序 - PowerPoint PPT Presentation

Citation preview

Page 1: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

• 第一章:概述• 第二章: C# 语言的基本原理• 第三章: C# 中对象的创建• 第四章:面向对象的编程技术• 第五章: C# 编程• 第六章:编写基于 .NET 的应

用 程序• 第七章:使用 ADO.NET 访问

数据

• 第一章:概述• 第二章: C# 语言的基本原理• 第三章: C# 中对象的创建• 第四章:面向对象的编程技术• 第五章: C# 编程• 第六章:编写基于 .NET 的应

用 程序• 第七章:使用 ADO.NET 访问

数据

• 第八章:创建基于 Windows

的应用程序• 第九章:在 C# 应用程序中使

用 XML Web Service

• 第十章:创建 Web 应用程序• 十一章:应用程序设置和

部署• 十二章:进阶学习目标

• 第八章:创建基于 Windows

的应用程序• 第九章:在 C# 应用程序中使

用 XML Web Service

• 第十章:创建 Web 应用程序• 十一章:应用程序设置和

部署• 十二章:进阶学习目标

C# 程序设计语言课程内容

Page 2: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

2C# 语言的基本原理C# 语言的基本原理内容:内容:

• C# 程序的基本原理

• C# 预定义类型

• 编写表达式

• 条件语句

• 循环语句

• C# 程序的基本原理

• C# 预定义类型

• 编写表达式

• 条件语句

• 循环语句

Page 3: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

学习完本节后,你将能够:• 了解 C# 语句• 使用大括号来组织语句• 在代码中加入注释

学习完本节后,你将能够:• 了解 C# 语句• 使用大括号来组织语句• 在代码中加入注释

C# 程序的基本原理 2.1

Page 4: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

• 程序结构 构成应用程序的必要元素有哪些? 怎样组织这些元素,使得编译器能够识别应用程序

代码?

• 程序结构 构成应用程序的必要元素有哪些? 怎样组织这些元素,使得编译器能够识别应用程序

代码?

C# 程序结构 2.1.1

Page 5: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

第一个 C# 程序 : HelloWorld

1. using System;

2. class HelloWorld

3. {

4. static void Main( )

5. {

6. Console.WriteLine(“Hello, World!”);

7. }

8. }

HelloWorld.cs

Page 6: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

第一个 C# 程序 : HelloWorld

1: using System;

第 1 行:

• using 关键字 用来引用 .NET 框架类库中的资源 通常在程序文件的开头使用 如果程序中需要多种资源,可以使用多次 using

• System 命名空间 System 命名空间提供了构建应用程序所需的系统统能的访问

• using 关键字 用来引用 .NET 框架类库中的资源 通常在程序文件的开头使用 如果程序中需要多种资源,可以使用多次 using

• System 命名空间 System 命名空间提供了构建应用程序所需的系统统能的访问

Page 7: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

第一个 C# 程序 : HelloWorld

2: class HelloWorld

3: {

………..

8: }

第 2 , 3 , 8 行:

• 类 在 C# 或其他面向对象语言中,需要编写类 使用关键字 class 定义一个类,类的内容放在一对 { } 中 示例中定义了一个名为 HelloWorld 的类

• 类 在 C# 或其他面向对象语言中,需要编写类 使用关键字 class 定义一个类,类的内容放在一对 { } 中 示例中定义了一个名为 HelloWorld 的类

Page 8: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

第一个 C# 程序 : HelloWorld

4: static void Main( )

5: {

………..

7: }

第 4 , 5 , 7 行:

• Main 方法 Main 方法是应用程序的入口点,编译器将由该处开始执行

程序 方法体也放在一对 { } 中 每个 C# 的应用程序都必须包含 Main 方法

• Main 方法 Main 方法是应用程序的入口点,编译器将由该处开始执行

程序 方法体也放在一对 { } 中 每个 C# 的应用程序都必须包含 Main 方法

Page 9: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

4: static void Main( )

5: {

………..

7: }

第 4 , 5 , 7 行:

• Main 方法 static 表示 Main 方法是一个全局方法 void 表示 Main 方法没有任何返回值,即返回值是空 参数放在小括号中定义。此处括号内没有内容,表明 Main 方法

没有任何参数

• Main 方法 static 表示 Main 方法是一个全局方法 void 表示 Main 方法没有任何返回值,即返回值是空 参数放在小括号中定义。此处括号内没有内容,表明 Main 方法

没有任何参数

第一个 C# 程序 : HelloWorld

Page 10: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

6: Console.WriteLine(“Hello, World!”);

第 6 行:

• 语句 在 C# 中要执行的指令 语句之间用;分隔,编译器通过分号来区分多个语句 使用大括号 { } 标识某个代码块的开始和结束,从而可以对语

句进行组合。大括号必须成对匹配。

• 语句 在 C# 中要执行的指令 语句之间用;分隔,编译器通过分号来区分多个语句 使用大括号 { } 标识某个代码块的开始和结束,从而可以对语

句进行组合。大括号必须成对匹配。

第一个 C# 程序 : HelloWorld

Page 11: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

6: Console.WriteLine(“Hello, World!”);

第 6 行:

• 语句 HelloWorld 程序的主要目的就是在屏幕上显示一条问候

WriteLine 方法用来将问候语写到标准输出设备上。 Console 代表标准输出设备 --- 屏幕,它属于 System 命名空间 WriteLine 方法是 Console 类的方法。访问类或对象的方法使

用 点取符 . 来完成。 字符串用双引号“ ”表示 字符串“ Hello,World” 是 WriteLine 方法的参数,表示屏幕输

出 的内容

• 语句 HelloWorld 程序的主要目的就是在屏幕上显示一条问候

WriteLine 方法用来将问候语写到标准输出设备上。 Console 代表标准输出设备 --- 屏幕,它属于 System 命名空间 WriteLine 方法是 Console 类的方法。访问类或对象的方法使

用 点取符 . 来完成。 字符串用双引号“ ”表示 字符串“ Hello,World” 是 WriteLine 方法的参数,表示屏幕输

出 的内容

第一个 C# 程序 : HelloWorld

Page 12: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

• 作用 良好、清晰的组织代码 提高代码的可读性,易于代码维护

• C# 的代码格式 缩进 区分大小写 忽略空白区 注释

• 作用 良好、清晰的组织代码 提高代码的可读性,易于代码维护

• C# 的代码格式 缩进 区分大小写 忽略空白区 注释

建议使用建议使用约定的代约定的代

码风格码风格

建议使用建议使用约定的代约定的代

码风格码风格

C# 的代码格式 2.1.2

Page 13: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

C# 的代码格式 2.1.2

• 注释 单行注释 // 多行注释 /* 和 */

• 注释 单行注释 // 多行注释 /* 和 */

//This is my first C# Programusing System;

class HelloWorld { static void Main() {

Console.WriteLine ("Hello, World"); }

}

Page 14: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

编译和运行 HelloWorld

1. using System;

2. class HelloWorld

3. {

4. static void Main( )

5. {

6. Console.WriteLine(“Hello, World!”);

7. }

8. }

HelloWorld.cs

Page 15: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

2C# 语言的基本原理C# 语言的基本原理内容:内容:

• C# 程序的基本原理

• C# 预定义类型

• 编写表达式

• 条件语句

• 循环语句

• C# 程序的基本原理

• C# 预定义类型

• 编写表达式

• 条件语句

• 循环语句

Page 16: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

C# 预定义类型 2.2

学习完本章后,你将能够:• 声明并初始化变量• 创建并使用字符串• 创建并使用常量• 执行类型转换

学习完本章后,你将能够:• 声明并初始化变量• 创建并使用字符串• 创建并使用常量• 执行类型转换

在编写应用程序在编写应用程序时,都必须使用时,都必须使用某种方式表示数某种方式表示数据,因此必须正据,因此必须正确使用数据类型确使用数据类型

在编写应用程序在编写应用程序时,都必须使用时,都必须使用某种方式表示数某种方式表示数据,因此必须正据,因此必须正确使用数据类型确使用数据类型

Page 17: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

内置数据类型 2.2.1

C# 的内置数据类型大致可划分为:( P25 表 2.1)

•逻辑型: bool

• 文本型: char, string

•整 型: byte , sbyte, short , ushort,

int , uint, long, ulong

•浮点型: float, double , decimal

C# 的内置数据类型大致可划分为:( P25 表 2.1)

•逻辑型: bool

• 文本型: char, string

•整 型: byte , sbyte, short , ushort,

int , uint, long, ulong

•浮点型: float, double , decimal

Page 18: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

声明并初始化变量 2.2.2

第 1步:声明变量• 作用:通过声明变量,可以在内存中为该变量申

请存储空间• 语法: 类型 变量名;

第 1步:声明变量• 作用:通过声明变量,可以在内存中为该变量申

请存储空间• 语法: 类型 变量名;

int numberOfVisitors;string bear;

int numberOfVisitors;string bear;

Page 19: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

声明并初始化变量 2.2.2

第 2步:初始化变量• 作用:给变量分配初值• 语法: 变量名 = 初值;

第 2步:初始化变量• 作用:给变量分配初值• 语法: 变量名 = 初值;

string bear;bear = “Grizzly”;// 声明和初始化一步完成string bear = “Grizzly”;

string bear;bear = “Grizzly”;// 声明和初始化一步完成string bear = “Grizzly”;

Page 20: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

声明并初始化变量 2.2.2

注意事项:• bool 只能取 2 个值: true 或 false

• char 表示单个 Unicode 字符,用‘’表示• 使用后缀 (P27页表 2-2)

注意事项:• bool 只能取 2 个值: true 或 false

• char 表示单个 Unicode 字符,用‘’表示• 使用后缀 (P27页表 2-2)

bool isOpen = 0; // 错误bool isOpen = false;char c = ‘A’; decimal balance = 3400.20; // 错误decimal balance = 3400.20M;

bool isOpen = 0; // 错误bool isOpen = false;char c = ‘A’; decimal balance = 3400.20; // 错误decimal balance = 3400.20M;

Page 21: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

特殊字符和转义字符

字符名称 转义符 字符名称 转义符反斜线 \\ 水平制表符 \t

退格 \b 垂直制表符 \v

回车 \r 换行 \n

双引号 \” 单引号 \’

• 有些特殊字符无法直接放在引号中,此时要表示这些字符,必须使用转义符

• 有些特殊字符无法直接放在引号中,此时要表示这些字符,必须使用转义符

Page 22: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

检查 Visual Studio.NET 中的变量

• 如何设置断点、使用 watch窗口、单步执行• 如何设置断点、使用 watch窗口、单步执行

Demo

Demo

Page 23: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

声明并初始化字符串 2.2.3

• 字符串表示任意长度的 Unicode 字符序列

• 字符串使用“”表示

• 可以使用转义字符或 verbatim 字符

• 字符串表示任意长度的 Unicode 字符序列

• 字符串使用“”表示

• 可以使用转义字符或 verbatim 字符string s = "Hello World";

string filename = “c:\trainer\Readme.txt”;// 错误或string filename = @“c:\trainer\Readme.txt”;

string s = "Hello World";

string filename = “c:\trainer\Readme.txt”;// 错误或string filename = @“c:\trainer\Readme.txt”;

Page 24: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

创建并使用常量 2.2.4

• 常量是指一旦被初始化,其数值保持不变的变量

• 常量通常用来表示有意义的固定数值,如圆周率

• 声明常量时必须对其赋值

语法:

const 类型 常量名 = 数值

• 常量是指一旦被初始化,其数值保持不变的变量

• 常量通常用来表示有意义的固定数值,如圆周率

• 声明常量时必须对其赋值

语法:

const 类型 常量名 = 数值

const decimal PI = 3.1415926M; //圆周率

const int earthRadius = 6378;//地球半径

const decimal PI = 3.1415926M; //圆周率

const int earthRadius = 6378;//地球半径

Page 25: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

创建并使用枚举类型 2.2.5

思考题:我们经常需要从多个相关的值中进行选取,如

• 一种天气:晴、阴、雨、雪、雾

• 一周的某一天: Monday, Tuesday, … Sunday

• 一年的某个月: Jan, Feb, Mar ….. Dec

• 一种对齐方式:左对齐、右对齐、居中对齐、两端对齐

思考题:我们经常需要从多个相关的值中进行选取,如

• 一种天气:晴、阴、雨、雪、雾

• 一周的某一天: Monday, Tuesday, … Sunday

• 一年的某个月: Jan, Feb, Mar ….. Dec

• 一种对齐方式:左对齐、右对齐、居中对齐、两端对齐

Page 26: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

创建并使用枚举类型 2.2.5

•枚举类型是一组被命名的数字常量,即:一个枚举类型中包含了多个相关的数字常量,且每个常量都被赋予了一个容易记忆的“名字”

• 使用 enum 关键字创建枚举类型

•枚举类型是一组被命名的数字常量,即:一个枚举类型中包含了多个相关的数字常量,且每个常量都被赋予了一个容易记忆的“名字”

• 使用 enum 关键字创建枚举类型enum Weather {

Sunny, // 默认值 0Cloudy, // 默认值 1Rain, // 默认值 2Snow, // 默认值 3fog // 默认值 4

}

enum Weather {Sunny, // 默认值 0Cloudy, // 默认值 1Rain, // 默认值 2Snow, // 默认值 3fog // 默认值 4

}

Page 27: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

创建并使用枚举类型 2.2.5

• 引用枚举成员• 引用枚举成员

Weather bj ;bj = Weather.Sunny;

// 显示结果Console.WriteLine(bj); // 显示 Sunny, 而不是数字 0

Weather bj ;bj = Weather.Sunny;

// 显示结果Console.WriteLine(bj); // 显示 Sunny, 而不是数字 0

Page 28: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

创建并使用枚举类型 2.2.5

•给枚举成员明确赋值•给枚举成员明确赋值

enum Month {Jan = 1,Feb = 2,Mar = 3,……Dec = 12

}

enum Month {Jan = 1,Feb = 2,Mar = 3,……Dec = 12

}

Page 29: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

类型转换 2.2.6

•相容的数据类型可以混合运算。运算中,不同数据类型先被自动转换为相同数据类型,然后再进行运算。转换时低容量数据类型向高容量数据类型转换。

低 高 byte short int long float double

•相容的数据类型可以混合运算。运算中,不同数据类型先被自动转换为相同数据类型,然后再进行运算。转换时低容量数据类型向高容量数据类型转换。

低 高 byte short int long float double

Page 30: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

•将小容量数据类型转换成大容量数据类型时,系统自动完成,成为隐式转换

•将大容量数据类型转换成小容量数据类型时,可能丢失信息,必须使用强制类型转换

•将小容量数据类型转换成大容量数据类型时,系统自动完成,成为隐式转换

•将大容量数据类型转换成小容量数据类型时,可能丢失信息,必须使用强制类型转换

类型转换 2.2.6

int x = 123456; long y = x; // 将 int 隐式转换为 longint x = 123456; long y = x; // 将 int 隐式转换为 long

decimal d = 100.99;int x = (int)d;// x 的值是 100 ,小数点后的值被舍弃

decimal d = 100.99;int x = (int)d;// x 的值是 100 ,小数点后的值被舍弃

Page 31: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

2C# 语言的基本原理C# 语言的基本原理内容:内容:

• C# 程序的基本原理

• C# 预定义类型

• 编写表达式

• 条件语句

• 循环语句

• C# 程序的基本原理

• C# 预定义类型

• 编写表达式

• 条件语句

• 循环语句

Page 32: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

编写表达式 2.3

学习完本节后,你将能够:• 使用运算符和创建表达式 • 确定运算符的优先级

学习完本节后,你将能够:• 使用运算符和创建表达式 • 确定运算符的优先级

Page 33: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

表达式和运算符 2.3.1

• 运算符就是表达式中的符号• 运算符就是表达式中的符号

常见运算符常见运算符常见运算符常见运算符•增 / 减•算术• 关系•相等• 条件•赋值

示例示例 ++ --

* / % + -

< > <= >=

== !=

&& || ?:

= *= /= %= += -= <<= >>= &= ^= |=

Page 34: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

运算符的优先级 2.3.2

• 按照运算符的优先级计算表达式

• 可以使用圆括号控制运算的顺序

• 左结合和右结合 所有二元运算符都是左结合的 赋值运算符和条件运算符是右结合的

• 按照运算符的优先级计算表达式

• 可以使用圆括号控制运算的顺序

• 左结合和右结合 所有二元运算符都是左结合的 赋值运算符和条件运算符是右结合的

(10 + 20) / 5 结果是 610 + (20 / 5) 结果是 14(10 + 20) / 5 结果是 610 + (20 / 5) 结果是 14

10 + 20 / 5 结果是 1410 + 20 / 5 结果是 14

Page 35: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

2C# 语言的基本原理C# 语言的基本原理内容:内容:

• C# 程序的基本原理

• C# 预定义类型

• 编写表达式

• 条件语句

• 循环语句

• C# 程序的基本原理

• C# 预定义类型

• 编写表达式

• 条件语句

• 循环语句

Page 36: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

条件语句 2.4

• 条件语句可以根据布尔表达式的值,有选择性的执行程序的某一部分

• 在 C# 中的条件语句有 if 和 switch 两种

• if 适合两个分支判断

• switch 适合多个分支判断

• 条件语句可以根据布尔表达式的值,有选择性的执行程序的某一部分

• 在 C# 中的条件语句有 if 和 switch 两种

• if 适合两个分支判断

• switch 适合多个分支判断

Page 37: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

if 语句的使用方法 2.4.1

• 语法:

• else 部分可选• if … else 可以嵌套

• 语法:

• else 部分可选• if … else 可以嵌套

if ( 布尔表达式 ) { 语句块 1 ;

}else {

语句块 2 ;}

if ( 布尔表达式 ) { 语句块 1 ;

}else {

语句块 2 ;}

Page 38: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

if 语句的使用方法 2.4.1

if ( sales > 10000 ) { bonus = 0.05 * sales;

}else {

bonus = 0;}

if ( sales > 10000 ) { bonus = 0.05 * sales;

}else {

bonus = 0;}

• 示例:

• 运算符(?:)是 if … else 语句的缩略形式

• 示例:

• 运算符(?:)是 if … else 语句的缩略形式 bonus = (sales>1000)? (0.05 * sales):0; bonus = (sales>1000)? (0.05 * sales):0;

Page 39: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

switch 语句的使用方法 2.4.2

• 在互斥的多个选项中选一个, switch 语句很有用

• 语法:• 在互斥的多个选项中选一个, switch 语句很有用

• 语法: switch (待测试表达式) { case value1 :

语句; break ;

case value2 : 语句; break ; …… default:

语句; break ; }

switch (待测试表达式) { case value1 :

语句; break ;

case value2 : 语句; break ; …… default:

语句; break ; }

Page 40: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于
Page 41: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

switch 语句的使用方法 2.4.2

• switch 表达式中求值的类型可以是整形、字符型、字符串、枚举类型

• 计算表达式的值并进行等值匹配。若表达式的值与某个 case 标记中的值相等,则执行权转到该 case 标记后的语句

• break 跳出整个 switch 。每个 case

中都必须使用 break , C# 不允许从一个 case 进入下一个 case ,称为不可贯穿性

• switch 表达式中求值的类型可以是整形、字符型、字符串、枚举类型

• 计算表达式的值并进行等值匹配。若表达式的值与某个 case 标记中的值相等,则执行权转到该 case 标记后的语句

• break 跳出整个 switch 。每个 case

中都必须使用 break , C# 不允许从一个 case 进入下一个 case ,称为不可贯穿性

switch (待测试表达式) { case value1 : 语句; break ; case value2 : 语句; break ; …… default:

语句; break ; }

switch (待测试表达式) { case value1 : 语句; break ; case value2 : 语句; break ; …… default:

语句; break ; }

Page 42: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

switch 语句的使用方法 2.4.2

• 若没有任何一个 case 标记的值与表达式匹配,则转到 default 语句中;若没有定义 default ,则结束 switch

判断

• default 是可选的,但通常需要定义,以捕获没有被任何 case 处理的值,其作用相当于 else 。

• 若没有任何一个 case 标记的值与表达式匹配,则转到 default 语句中;若没有定义 default ,则结束 switch

判断

• default 是可选的,但通常需要定义,以捕获没有被任何 case 处理的值,其作用相当于 else 。

switch (待测试表达式) { case value1 : 语句; break ; case value2 : 语句; break ; …… default:

语句; break ; }

switch (待测试表达式) { case value1 : 语句; break ; case value2 : 语句; break ; …… default:

语句; break ; }

Page 43: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

switch 语句的使用方法 2.4.2

DateTime today = DateTime.Now;DayOfWeek weekday = today.DayOfWeek;string str = "";switch (weekday) {

case DayOfWeek.Monday:str = "Don't speak to me!";break;

… … case DayOfWeek.Friday:

str = "Anticipation...";break;

default:str = "Wondeful !!!";break;

}

DateTime today = DateTime.Now;DayOfWeek weekday = today.DayOfWeek;string str = "";switch (weekday) {

case DayOfWeek.Monday:str = "Don't speak to me!";break;

… … case DayOfWeek.Friday:

str = "Anticipation...";break;

default:str = "Wondeful !!!";break;

}

Page 44: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

使用 switch 语句

练 习练 习

10 分钟

Page 45: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

2C# 语言的基本原理C# 语言的基本原理内容:内容:

• C# 程序的基本原理

• C# 预定义类型

• 编写表达式

• 条件语句

• 循环语句

• C# 程序的基本原理

• C# 预定义类型

• 编写表达式

• 条件语句

• 循环语句

Page 46: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

循 环 语 句 2.5

•借助循环机制,编译器可以重复执行一块代码,直至满足某个条件为止,从而避免重复输入相同的代码行

• C# 提供的循环机制有: for 循环 while 循环 do 循环

•借助循环机制,编译器可以重复执行一块代码,直至满足某个条件为止,从而避免重复输入相同的代码行

• C# 提供的循环机制有: for 循环 while 循环 do 循环

Page 47: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

for 循环 2.5.1

• for 循环用于将代码块执行固定的次数

• 语法:• for 循环用于将代码块执行固定的次数

• 语法:

for ( 初始化表达式;循环条件;迭代表达式 ) {

循环语句;}

for ( 初始化表达式;循环条件;迭代表达式 ) {

循环语句;}

Page 48: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

for 循环 2.5.1

• 先执行初始化表达式,此部分只执行一次

• 判断条件表达式,若满足条件则执行循环体;否则跳出 for 循环

• 每次循环语句执行完后要执行一次迭代,并重新判断循环条件

• 示例:

• 先执行初始化表达式,此部分只执行一次

• 判断条件表达式,若满足条件则执行循环体;否则跳出 for 循环

• 每次循环语句执行完后要执行一次迭代,并重新判断循环条件

• 示例:

for (int i = 0; i < 10; i++) {Console.WriteLine("i = {0}",i);

}

for ( int j = 100; j > 0; j -= 10 ) {Console.WriteLine("j = {0}", j);

}

for (int i = 0; i < 10; i++) {Console.WriteLine("i = {0}",i);

}

for ( int j = 100; j > 0; j -= 10 ) {Console.WriteLine("j = {0}", j);

}

Page 49: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

while 循环 2.5.2

•与 for 循环类似,也是预测试循环,即首先判断循环条件,若满足则执行循环;否则不执行

• 语法:

•与 for 循环类似,也是预测试循环,即首先判断循环条件,若满足则执行循环;否则不执行

• 语法:

while ( 循环条件 ) {

循环语句;}

while ( 循环条件 ) {

循环语句;}

Page 50: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

while 循环 2.5.2

•当不知道循环执行的次数时,可以使用 while

• 示例:•当不知道循环执行的次数时,可以使用 while

• 示例:

while ( command != “Exit” ) {

doSomething() ; …… }

while ( command != “Exit” ) {

doSomething() ; …… }

Page 51: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

do 循环 2.5.3

•先执行循环语句,再进行循环条件测试,所以循环语句至少执行一次,成为后测试循环

• 语法:

• 示例:

•先执行循环语句,再进行循环条件测试,所以循环语句至少执行一次,成为后测试循环

• 语法:

• 示例:

do { 循环语句;} while ( 循环条件 );

do { 循环语句;} while ( 循环条件 );

int i = 1;do {

Console.WriteLine ("{0}", i++);} while (i <= 10);

int i = 1;do {

Console.WriteLine ("{0}", i++);} while (i <= 10);

Page 52: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

特殊的循环控制 2.5.3

• continue 关键字终止当次循环,开始下一次迭代和循环(并不终止整个循环)

• break 关键字跳出和终止整个循环

• 示例:输出 1 , 2 , 3 , 4 , 5 , 6 , 8 , 9

• continue 关键字终止当次循环,开始下一次迭代和循环(并不终止整个循环)

• break 关键字跳出和终止整个循环

• 示例:输出 1 , 2 , 3 , 4 , 5 , 6 , 8 , 9

for (int i = 1; i < 10; i++) { if ( i == 7 ) { continue; } Console.WriteLine(i);}

for (int i = 1; i < 10; i++) { if ( i == 7 ) { continue; } Console.WriteLine(i);}

Page 53: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

使用循环语句 2.5.4

练 习练 习1. 参见教材 P55页 2.5.4 课堂练习1. 参见教材 P55页 2.5.4 课堂练习

Page 54: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

小 憩 片 刻

学 完 了就可以 …… 学 完 了就可以 ……

Page 55: 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于

Microsoft ©Microsoft ©

我想,想,想

int m = 10;int k = ++m; //k= ? , m = ?如果换成int k = m++; //k = ?, m = ? ( 5 个积分)

int m = 10;int k = ++m; //k= ? , m = ?如果换成int k = m++; //k = ?, m = ? ( 5 个积分)

1111

2222C# 的枚举类型功能强大,可以支持逻辑运算符 & 和 | 。如果北京的天气为雨加雪,上海的天气是晴转阴有小雨,是多种天气状况的组合,怎样创建这种枚举类型?

Weather bj, sh;bj = Weather.Rain|Weather.Snow;sh = Weather.Sunny|Weather.Cloudy|Weather.Rain; ( 10 个积分)

C# 的枚举类型功能强大,可以支持逻辑运算符 & 和 | 。如果北京的天气为雨加雪,上海的天气是晴转阴有小雨,是多种天气状况的组合,怎样创建这种枚举类型?

Weather bj, sh;bj = Weather.Rain|Weather.Snow;sh = Weather.Sunny|Weather.Cloudy|Weather.Rain; ( 10 个积分)