C#基本语法介绍.ppt
南京师范大学教育技术系南京师范大学教育技术系1 第第3章章 C#语法基础语法基础南京师范大学教育技术系南京师范大学教育技术系2 C#中的注释单行注释,单行注释,/该行该行“/”之后的文本都会被编译器认之后的文本都会被编译器认为是注释,注释自动在行尾结束,其只能为是注释,注释自动在行尾结束,其只能用于单行注释。用于单行注释。/*这是注释这是注释*/:多行注释用多行注释用“/*”字符串开始,以字符串开始,以“*/”字符串结束。字符串结束。南京师范大学教育技术系南京师范大学教育技术系3C#C#数据数据数据数据类类类类型型型型大小大小大小大小默默默默认值认值认值认值 示例示例示例示例sbyte (byte)sbyte (byte)有有有有(无无无无)符符符符号号号号的的的的 8 8 位位位位整数整数整数整数 0 0byte gpa=2;byte gpa=2;short short (ushort)(ushort)有有有有(无无无无)符符符符号号号号的的的的 16 16 位整数位整数位整数位整数 0 0short salary=short salary=3400;3400;int (uint)int (uint)有有有有(无无无无)符符符符号号号号的的的的 32 32 位整数位整数位整数位整数 0 0int rating=20;int rating=20;long long (ulong)(ulong)有有有有(无无无无)符符符符号号号号的的的的 64 64 位整数位整数位整数位整数 0L0Llong population=long population=23451900;23451900;南京师范大学教育技术系南京师范大学教育技术系4C#C#数据数据数据数据类类类类型型型型大小大小大小大小默默默默认值认值认值认值 示例示例示例示例charchar16 16 位位位位 一个字符一个字符一个字符一个字符char=schar=schar=char=中中中中 南京师范大学教育技术系南京师范大学教育技术系5C#C#数据数据数据数据类类类类型型型型大小大小大小大小默默默默认认认认值值值值 示例示例示例示例floatfloat32 32 位位位位浮浮浮浮点点点点数数数数,精精精精确到小数点后确到小数点后确到小数点后确到小数点后 7 7 位位位位 0.0F0.0Ffloat float temperature temperature=40.6F;40.6F;doubledouble双双双双精精精精度度度度浮浮浮浮点点点点型型型型,1515或或或或1616个有效数字个有效数字个有效数字个有效数字 0.00.0double double temperature=temperature=40.6;40.6;decimal decimal 2828个个个个有有有有效效效效数数数数字字字字的的的的精精精精确小数型确小数型确小数型确小数型 0.0M0.0Mdecimal decimal temperature=temperature=40.6M40.6M南京师范大学教育技术系南京师范大学教育技术系6namespace Ex_3_1namespace Ex_3_1 class Program class Program static void Main(string args)static void Main(string args)int a=50;/int a=50;/定义定义定义定义a a int b=40;int b=40;/定义定义定义定义b b Console.WriteLine(a+b);Console.WriteLine(a+b);/输出输出输出输出 Console.ReadLine();/Console.ReadLine();/加上这行才能看到运行结果,否则一闪而过加上这行才能看到运行结果,否则一闪而过加上这行才能看到运行结果,否则一闪而过加上这行才能看到运行结果,否则一闪而过 string i=4;string i=4;/声明字符型变量声明字符型变量声明字符型变量声明字符型变量i i string j=10;string j=10;/声明字符型变量声明字符型变量声明字符型变量声明字符型变量j j Console.WriteLine(j);Console.WriteLine(j);Console.WriteLine(i+j);Console.WriteLine(i+j);Console.ReadLine();Console.ReadLine();南京师范大学教育技术系南京师范大学教育技术系7namespace Ex_3_2namespace Ex_3_2class Programclass Program static void Main(string args)static void Main(string args)string sName=hoan;string sName=hoan;string sSex=string sSex=男男男男;int iAge=23;int iAge=23;Double dHeight=1.72;Double dHeight=1.72;Console.Write(Console.Write(我叫:我叫:我叫:我叫:););Console.WriteLine(sName);Console.WriteLine(sName);Console.Write(Console.Write(性别:性别:性别:性别:););Console.WriteLine(sSex);Console.WriteLine(sSex);Console.Write(Console.Write(年龄:年龄:年龄:年龄:););Console.WriteLine(iAge);Console.WriteLine(iAge);Console.Write(Console.Write(身高:身高:身高:身高:););Console.WriteLine(dHeight);Console.WriteLine(dHeight);Console.Read();Console.Read();南京师范大学教育技术系南京师范大学教育技术系8复合值类型结构结构:struct myPoint public int x;public int y;南京师范大学教育技术系南京师范大学教育技术系9枚举enumenum weekdayMonday,Tuesday,Wednesday,Thursday,Friday,Saturday,SunDay南京师范大学教育技术系南京师范大学教育技术系10 数组 数组是数组是数组是数组是有相同类型有相同类型有相同类型有相同类型 的对象的集合的对象的集合的对象的集合的对象的集合,对象被称着对象被称着对象被称着对象被称着数组元素数组元素数组元素数组元素,数组元素的类型可以是数值型数组元素的类型可以是数值型数组元素的类型可以是数值型数组元素的类型可以是数值型,也可以是也可以是也可以是也可以是引用型。引用型。引用型。引用型。数组必须先定义,后使用。数组的定义采用数组必须先定义,后使用。数组的定义采用数组必须先定义,后使用。数组的定义采用数组必须先定义,后使用。数组的定义采用以下方式:以下方式:以下方式:以下方式:其中其中其中其中TypeType可以是任意的类型,可以是任意的类型,可以是任意的类型,可以是任意的类型,namename是数组的是数组的是数组的是数组的名称。名称。名称。名称。南京师范大学教育技术系南京师范大学教育技术系11数组可以通过两种方式进行初始化,第一种方式是完整的指数组可以通过两种方式进行初始化,第一种方式是完整的指数组可以通过两种方式进行初始化,第一种方式是完整的指数组可以通过两种方式进行初始化,第一种方式是完整的指定数组的内容;第二种方式是指定数组的长度,并使用定数组的内容;第二种方式是指定数组的长度,并使用定数组的内容;第二种方式是指定数组的长度,并使用定数组的内容;第二种方式是指定数组的长度,并使用newnew关键字初始化所有的数组元素。关键字初始化所有的数组元素。关键字初始化所有的数组元素。关键字初始化所有的数组元素。int intArray=1,2,3 /int intArray=1,2,3 /声明了一个一维数组并赋值声明了一个一维数组并赋值声明了一个一维数组并赋值声明了一个一维数组并赋值 等价于:等价于:等价于:等价于:int intArray /int intArray /声明了一个一维数声明了一个一维数声明了一个一维数声明了一个一维数 intArray=1,2,3;/intArray=1,2,3;/对数组赋值对数组赋值对数组赋值对数组赋值 int3 intArray;/int3 intArray;/声明了一个一维数声明了一个一维数声明了一个一维数声明了一个一维数 intArray=new int3;/intArray=new int3;/对数组初始化对数组初始化对数组初始化对数组初始化 南京师范大学教育技术系南京师范大学教育技术系12namespace Ex_3_3namespace Ex_3_3 class Program class Program static void Main(string args)static void Main(string args)int array=new int5;int array=new int5;/定义一个一维数组,它有定义一个一维数组,它有定义一个一维数组,它有定义一个一维数组,它有5 5个元素个元素个元素个元素 for(int i=0;i array.Length;i+)/for(int i=0;i array.Length;i+)/循环计算循环计算循环计算循环计算i i的值,最大长度是的值,最大长度是的值,最大长度是的值,最大长度是数组的长度数组的长度数组的长度数组的长度array.Lengtharray.Length arrayi=i+10;arrayi=i+10;Console.WriteLine(arrayi);Console.WriteLine(arrayi);/输出输出输出输出i i的值的值的值的值 Console.ReadLine();Console.ReadLine();/获取输入焦点,为了获取输入焦点,为了获取输入焦点,为了获取输入焦点,为了看运行结果,放在循环体之外看运行结果,放在循环体之外看运行结果,放在循环体之外看运行结果,放在循环体之外 南京师范大学教育技术系南京师范大学教育技术系13/定义一个二维数组定义一个二维数组定义一个二维数组定义一个二维数组 int,intArray=new int2,3;int,intArray=new int2,3;/为二维数组赋值并输出为二维数组赋值并输出为二维数组赋值并输出为二维数组赋值并输出 for(int i=0;i intArray.GetLength(0);i+)for(int i=0;i intArray.GetLength(0);i+)for(int j=0;j intArray.GetLength(1);j+)for(int j=0;j 检检检检查查查查一一一一个个个个数数数数是是是是否否否否大大大大于另一个数于另一个数于另一个数于另一个数 操作数操作数操作数操作数1 1 操作数操作数操作数操作数2 2 检检检检查查查查一一一一个个个个数数数数是是是是否否否否小小小小于另一个数于另一个数于另一个数于另一个数 操作数操作数操作数操作数1 1=检检检检查查查查一一一一个个个个数数数数是是是是否否否否大大大大于或等于另一个数于或等于另一个数于或等于另一个数于或等于另一个数 操作数操作数操作数操作数1=1=操作数操作数操作数操作数2 2=检检检检查查查查一一一一个个个个数数数数是是是是否否否否小小小小于或等于另一个数于或等于另一个数于或等于另一个数于或等于另一个数 操作数操作数操作数操作数1=1=操作数操作数操作数操作数2 2=检检检检查查查查两两两两个个个个值值值值是是是是否否否否相相相相等等等等 操作数操作数操作数操作数1=1=操作数操作数操作数操作数2 2!=!=检检检检查查查查两两两两个个个个值值值值是是是是否否否否不不不不相等相等相等相等操作数操作数操作数操作数1!=1!=操作数操作数操作数操作数2 2南京师范大学教育技术系南京师范大学教育技术系27类别类别运算符运算符 说说明明表达式表达式成员访问运算成员访问运算成员访问运算成员访问运算符符符符.用于访问数据结构的用于访问数据结构的用于访问数据结构的用于访问数据结构的成员成员成员成员 数据结构数据结构数据结构数据结构.成员成员成员成员赋值运算符赋值运算符赋值运算符赋值运算符=给变量赋值给变量赋值给变量赋值给变量赋值 操作数操作数操作数操作数1=1=操作数操作数操作数操作数2 2逻辑运算符逻辑运算符逻辑运算符逻辑运算符&对两个表达式执行逻对两个表达式执行逻对两个表达式执行逻对两个表达式执行逻辑辑辑辑“与与与与”运算运算运算运算 操作数操作数操作数操作数1&1&操作数操作数操作数操作数2 2|对两个表达式执行逻对两个表达式执行逻对两个表达式执行逻对两个表达式执行逻辑辑辑辑“或或或或”运算运算运算运算 操作数操作数操作数操作数1|1|操作数操作数操作数操作数2 2!对一个表达式执行逻对一个表达式执行逻对一个表达式执行逻对一个表达式执行逻辑辑辑辑“非非非非”运算运算运算运算!操作数操作数操作数操作数()()将操作数强制转换为将操作数强制转换为将操作数强制转换为将操作数强制转换为给定的数据类型给定的数据类型给定的数据类型给定的数据类型 (数据类型数据类型数据类型数据类型)操作数操作数操作数操作数南京师范大学教育技术系南京师范大学教育技术系28运算符运算符计计算方法算方法表达式表达式求求值值结结果(假定果(假定 X=X=1010)+=+=运算运算运算运算结结结结果果果果 =操作数操作数操作数操作数1 1+操作数操作数操作数操作数2 2X +=5X +=5X=X+5X=X+51515-=-=运算运算运算运算结结结结果果果果 =操作数操作数操作数操作数1 1-操作数操作数操作数操作数2 2X -=5X -=5X=X-5X=X-55 5*=*=运算运算运算运算结结结结果果果果 =操作数操作数操作数操作数1 1*操作数操作数操作数操作数2 2X*=5X*=5X=X*5X=X*55050/=/=运算运算运算运算结结结结果果果果 =操作数操作数操作数操作数1 1/操作数操作数操作数操作数2 2X /=5X /=5X=X/5X=X/52 2%=%=运算运算运算运算结结结结果果果果 =操作数操作数操作数操作数1 1%操作数操作数操作数操作数2 2X%=5X%=5X=X%5X=X%50 0南京师范大学教育技术系南京师范大学教育技术系29前置和后置自加/自减运算符表达式表达式表达式表达式类型类型类型类型计算方法计算方法计算方法计算方法结果(假定结果(假定结果(假定结果(假定 num1 num1 的值为的值为的值为的值为 5 5)num2=num2=+num1;+num1;前置自前置自前置自前置自加加加加num1=num1+num1=num1+1;1;num2=num1;num2=num1;num2=6;num2=6;num1=6;num1=6;num2=num2=num1+;num1+;后置自后置自后置自后置自加加加加num2=num1;num2=num1;num1=num1+num1=num1+1;1;num2=5;num2=5;num1=6;num1=6;num2=-num1;num2=-num1;前置自前置自前置自前置自减减减减num1=num1-1;num1=num1-1;num2=num1;num2=num1;num2=4;num2=4;Num1=4;Num1=4;num2=num1-;num2=num1-;后置自后置自后置自后置自减减减减num2=num1;num2=num1;num1=num1-1;num1=num1-1;num2=5;num2=5;Num1=4;Num1=4;南京师范大学教育技术系南京师范大学教育技术系30问题计算结果:计算结果:1、int i=0;bool result=false;result=(+i)+i=2?true:false;result=result=true南京师范大学教育技术系南京师范大学教育技术系31C#运算符的优先级运算符的优先级优优优优先先先先级级级级(1 1 最高)最高)最高)最高)说说说说明明明明运算符运算符运算符运算符1 1括号括号括号括号()()2 2自加自加自加自加/自减运算符自减运算符自减运算符自减运算符+/-+/-3 3乘法运算符乘法运算符乘法运算符乘法运算符除法运算符除法运算符除法运算符除法运算符取模运算符取模运算符取模运算符取模运算符*/%4 4加法运算符加法运算符加法运算符加法运算符减法运算符减法运算符减法运算符减法运算符+-5 5小于小于小于小于小于等于小于等于小于等于小于等于大于大于大于大于大于等于大于等于大于等于大于等于=6 6等于等于等于等于不等于不等于不等于不等于=!=!=7 7逻辑逻辑逻辑逻辑与与与与&8 8逻辑逻辑逻辑逻辑或或或或|9 9赋值赋值赋值赋值运算符和快捷运算符运算符和快捷运算符运算符和快捷运算符运算符和快捷运算符=+=*=+=*=/=%=-=/=%=-=南京师范大学教育技术系南京师范大学教育技术系32using System;using System;using System.Collections.Generic;using System.Collections.Generic;using System.Linq;using System.Linq;using System.Text;using System.Text;namespace Ex_3_6namespace Ex_3_6/程序的命名空间,也是项目名称,如程序的命名空间,也是项目名称,如程序的命名空间,也是项目名称,如程序的命名空间,也是项目名称,如Ex_3_6Ex_3_6 class Program class Program static void Main(string args)static void Main(string args)Console.WriteLine(10+10);/Console.WriteLine(10+10);/这里的这里的这里的这里的”+”号作为计算数值用号作为计算数值用号作为计算数值用号作为计算数值用 Console.WriteLine(10+10);/Console.WriteLine(10+10);/这里的这里的这里的这里的”+”号作为字符串相加号作为字符串相加号作为字符串相加号作为字符串相加 Console.ReadLine();/Console.ReadLine();/获取输入,控制台窗口停下来,看输出结果获取输入,控制台窗口停下来,看输出结果获取输入,控制台窗口停下来,看输出结果获取输入,控制台窗口停下来,看输出结果 南京师范大学教育技术系南京师范大学教育技术系33/位运算符位运算符位运算符位运算符 x=32;x=32;Console.WriteLine(x);Console.WriteLine(x);y=x 2;y=x 2;Console.WriteLine(y);Console.WriteLine(y);int z=x 2;int z=x 2;Console.WriteLine(z);Console.WriteLine(z);Console.ReadLine();Console.ReadLine();南京师范大学教育技术系南京师范大学教育技术系34 类型转换在编写程序过程中,会经常遇到这种情况,就是需在编写程序过程中,会经常遇到这种情况,就是需在编写程序过程中,会经常遇到这种情况,就是需在编写程序过程中,会经常遇到这种情况,就是需要将一种数据类型的值赋给另一种不同数据类型要将一种数据类型的值赋给另一种不同数据类型要将一种数据类型的值赋给另一种不同数据类型要将一种数据类型的值赋给另一种不同数据类型的变量。例如,从的变量。例如,从的变量。例如,从的变量。例如,从intint类型转换到类型转换到类型转换到类型转换到longlong类型数据类类型数据类类型数据类类型数据类型之间的转换等,由于数据类型有差异,在赋值型之间的转换等,由于数据类型有差异,在赋值型之间的转换等,由于数据类型有差异,在赋值型之间的转换等,由于数据类型有差异,在赋值时就需要进行数据类型的转换。在时就需要进行数据类型的转换。在时就需要进行数据类型的转换。在时就需要进行数据类型的转换。在C#C#中提供了如中提供了如中提供了如中提供了如下的转换:下的转换:下的转换:下的转换:隐式转换。隐式转换。隐式转换。隐式转换。显式转换。显式转换。显式转换。显式转换。使用命令的显示转换。使用命令的显示转换。使用命令的显示转换。使用命令的显示转换。南京师范大学教育技术系南京师范大学教育技术系35 ConvertConvert类常用方法类常用方法南京师范大学教育技术系南京师范大学教育技术系36 class Program /namespace Ex_3_4 class Program /namespace Ex_3_4 static void Main(string args)static void Main(string args)double d=100.5;double d=100.5;int i;int i;i=(int)d;i=(int)d;Console.WriteLine(i);Console.WriteLine(i);byte b=5;byte b=5;int x=b;Console.WriteLine(“the Value of x is 0”,x);/int x=b;Console.WriteLine(“the Value of x is 0”,x);/实现了隐式转换实现了隐式转换实现了隐式转换实现了隐式转换 bool myBool=true;bool myBool=true;double myDouble=99.00;double myDouble=99.00;string myString=Convert.ToString(myBool)+string myString=Convert.ToString(myBool)+Convert.ToString(myDouble);Convert.ToString(myDouble);Console.WriteLine(the Value of myString is 0,myString);Console.WriteLine(the Value of myString is 0,myString);Console.ReadLine();Console.ReadLine();