C第3讲常量、变量和运算符_第1页
C第3讲常量、变量和运算符_第2页
C第3讲常量、变量和运算符_第3页
C第3讲常量、变量和运算符_第4页
C第3讲常量、变量和运算符_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3讲常量和变量课程内容安排什么是数据类型什么是变量什么是常量三种常量及引用类型运算符实战演练类型转换—装箱和拆箱输入输出操作什么是数据类型C#的数据类型可以分为3类:值类型、引用类型、指针类型值类型:直接存放真正的数据引用类型:存储读数据的内容地址的引用指针类型:仅在不安全代码中使用数据类型值类型引用类型简单类型结构类型枚举类型整数类型浮点类型小数类型字符类型布尔类型类类型数组类型接口类型委托类型object(对象类型)string(字符串类型)其他结构类型、枚举类型、数组类型在第5章讲接口类型在第7章讲委托类型在第6章讲什么是变量变量是指在程序运行的过程中,值可以发生变化的量。常量是指在程序运行的过程中,值不会发生变化的量。常量的声明,需声明程序中要用到的常量名称和对它进行赋值。变量的命名规则如下:变量名必须以字母开头,名字中间只能由字母、数字和下划线“_”组成;变量名的长度不能超过255个字符;变量名在有效的程序范围内必须是唯一的;变量名不能是保留字(关键字),但可以把保留字嵌入变量名;例如:命名一个学生的名字StuName,这样一眼就看出是学生名字的变量。什么是常量常量可以是任何一种值类型或引用类型。例如,圆周率PI就是一个常量,因为它的值是不变的。C#中定义常量的方式有两种,一种是静态常量(Compile-timeconstant),另一种是动态常量(Runtimeconstant)。在程序设计中,一般常量都用大写字母来表示。staticreadonlyconst数值常量36代表int类型数值3612.56代表double类型数值12.5624.1m代表decimal类型数值24.135.2f代表float类型数值35.2712u代表uint类型的数值712389712ul代表ulong类型的数值389712字符常量普通字符常量‘a’’1’’6’’?’’你’转义字符常量

转义符字符名称\'单引号\"双引号\\反斜杠\0空字符(Null)\a发出一个警告\b倒退一个字符\f换页\n新的一行\r换行并移到同一行的最前面\t水平方向的Tab\v垂直方向的Tab布尔常量

truefalse引用类型1.object类型-对象类型C#中所有的类型都直接或间接派生于object类型。对于任何类型的值都可以赋给object变量。

doubled=3.14;objectobj1;obj1=d;obj1=‘k’;

2.string类型-字符串类型

stringstr1;str1=“中国,”;stringstr2=“你好!”;Console.WriteLine(“{0}{1}”,str1,str2);(1)常规字符串常量“Thisisatest.”“C#程序设计教程”(2)逐字字符串常量

@”电子计算机”

@”Iamanengineer.”注意:在逐字字符串常数的双引号中,每个字符都代表其最原始的意义,在逐字字符串常数中没有转义字符。若要双引号,需使用两个双引号stringstr1;//定义字符串类型stringstr2="hello,world";//规则字符串常数:hello,worldstringstr3=@"hello,world";//逐字字符串常数:hello,worldstringstr4="hello\tworld";//helloworldstringstr5=@"hello\tworld";//hello\tworldstringstr6="Hesaid\"Hello\"toyou";//Hesaid"Hello"toyoustringstr7=@"Hesaid""Hello""toyou";//Hesaid"Hello"toyou例:P35-例3-2usingSystem;classTest{staticvoidMain(){Console.WriteLine(@"Thisisaverbatimstringliteralthatspansseverallines.");Console.WriteLine(@"Hereissometabbedoutput:12345678");Console.WriteLine(@"Programmerssay,""IlikeC#""");}}运行结果运算符算术运算符(教P41-例3-5和例3-6)运算符意义运算对象数目运算对象类型运算结果类型实例+取正或加法1或2任何数值类型数值类型+5、6+8+a-取负或减法1或2-3、a-b*乘法23*a*b、5*2/除法27/4、a/b%模(求整数除法的余数)2a%(2+5)、a%b、3%2++自增运算1a++、++b--自减运算1a--、--b赋值运算符类型符号说明简单赋值运算符=x=1复合赋值运算符+=x+=1等价于x=x+1-=x-=1等价于x=x-1*=1x*=1等价于x=x*1/=x/=1等价于x=x/1%=x%=1等价于x=x%1关系运算符符号意义运算结果类型运算对象个数实例>大于布尔类型如果条件成立,结果为true,否则结果为false23>6,x>2,b>a<小于3.14<3,x<y>=大于等于3.26>=b<=小于等于PI<=3.1416==等于3==2,x==2!=不等于x!=y,3!=2逻辑运算符符号意义运算对象类型运算结果类型运算对象个数实例!逻辑非布尔类型布尔类型1!(i>j)&&逻辑与2x>y&&x>0||逻辑或2x>y||x>0“先逻辑非,再逻辑与,后逻辑或”位运算符

(1)“~”运算符把二进制数的0转换为1,1转换为0。例:6的二进制表示:00000110~6的结果:11111001(2)“&”运算符

0&0=00&1=01&0=01&1=1

例:7的二进制表示:0000011111的二进制表示:00001011——————————————“&”运算的结果是:00000011

即:7&11=3

usingSystem;classTest{staticvoidMain(){sbytea=~6;Console.WriteLine("{0}",(byte)a);}}

(3)“|”运算符

0|0=00|1=11|0=11|1=1

例:7的二进制表示:0000011111的二进制表示:00001011—————————————“|”运算的结果是:00001111

即:7&11=15(4)“^”运算符

0^0=00^1=11^0=11^1=0

例:7的二进制表示:0000011111的二进制表示:00001011—————————————“^”运算的结果是:00001100

即:7^11=12

(5)“<<”运算符二进制位全部按位左移,高位被丢弃,低位顺序补0。例:7的二进制表示:000001117<<1结果是00001110(十进制是14)

(6)

“>>”运算符二进制位全部按位右移。例:7的二进制表示:000001117>>1结果是00000011(十进制是3)条件运算符格式:<操作数1>

?<操作数2>

:<操作数3>

含义:进行条件运算时,首先判断<操作数1>

,如果是true,则值等于<操作数2>的值;如果为false,则值等于<操作数3>的值。

例如:6>8?15+a:39

由于6>8的值为false,所以整个表达式的值是39。其他运算符

(1)字符串连接符(+)就是将两个字符串连接在一起,形成新的字符串。例如:“abc”+“efg”//结果是abcefg“36812”+“3.14”//结果是368123.14(2)

is运算符

is运算符用于检查表达式是否指定的类型,如果是,结果为true,否则结果为false。例如:

intk=2;boolisTest=kisint;//isTest=true(3)

sizeof运算符

sizeof运算符用于获得值类型数据在内存占用的字节数。例如:

inta=sizeof(double);//a=8练习判断题1.已知a=3,b=4,则++(a+b)的结果为8。()2.整数除法会产生一个整数商,其小数部分会被舍去。()3.若变量a为整型,则表达式“aisint”的结果为true。()选择题1.已知

inta=2;stringb=”123”;boolc=true;

则有错误的表达式为()

A.a==10&&cB.c>120C.2*a+1D.b+”456”2.表达式“abcde”==”abcde”+”2006”的值为()

A.True2006B.trueC.falseD.0实战演练制定薪酬标准创建控制台应用程序Control2_1创建Windows应用程序UC2_1薪酬标准包括四项:基本工资(baseWage)150-350元工龄工资(seniorityWage)20-100元福利性补贴(welfareWage)1190元医疗补贴(medicalWage)20-225元四个级别:一级大于1750元二级大于1700元且小于1750元三级大于1650元且小于1700元四级大于1550元且小于1650元最后获得级别创建控制台应用程序Control2_1usingSystem;classPrime{staticvoidMain(){Console.Write("输入基本工资(150-350元):");decimalbaseSalary=decimal.Parse(Console.ReadLine());Console.Write("输入工龄工资(20-100元):");decimalseniorityWage=decimal.Parse(Console.ReadLine());Console.Write("输入福利性补贴(1190元):");decimalwelfare=decimal.Parse(Console.ReadLine());Console.Write("输入医疗补贴(20-225元):");decimalmedical=decimal.Parse(Console.ReadLine());decimalWages=baseSalary+seniorityWage+welfare+medical;stringrating;rating=Wages>1750?"一级":(Wages>1700?"二级":(Wages>1650?"三级":(Wages>1550?"四级":"无级别")));Console.WriteLine("此职工工资{0}元,工资级别是{1}",Wages,rating);Console.ReadLine();}}创建Windows应用程序UC2_1五个标签label1、label2、label3、label4、label5四个文本框textBox1、textBox2、textBox3、textBox4一个命令按钮button1Button1的button1_Click方法代码:双击button1进入代码界面;

privatevoidbutton1_Click(objectsender,EventArgse){decimalbaseSalary=decimal.Parse(textBox1.Text);decimalseniorityWage=decimal.Parse(textBox2.Text);decimalwelfare=decimal.Parse(textBox3.Text);decimalmedical=decimal.Parse(textBox4.Text);decimalWages=baseSalary+seniorityWage+welfare+medical;stringrating;rating=Wages>1750?"一级":(Wages>1700?"二级":(Wages>1650?"三级":(Wages>1550?"四级":"无级别")));label5.Text="此职工的工资级别是"+rating.ToString();}

2.usingSystem;classLogicalOperator

{staticvoidMain(){

inti=1;

intj=2;

boolk1,k2;k1=i<j&&i++<j;Console.WriteLine(“k1={0},i={1}”,k1,i);k2=i<j||i++<j;

Console.WriteLine(“k2={0},i={1}”,k2,i);

boolk3=i<j++||’x’<‘y’&&!true;

Console.WriteLine(“k3={0},j={1}”,k3,j);}}

运行结果:阅读程序

3.usingSystem;classDemo3{staticvoidMain(){

inta=10,b=20,c;

boolk1,k2,k3; k1=aisint; k2=a==b; c=k1?a++:--b; k3=k1||k2&&!k1; Console.WriteLine("k1={0}k2={1}k3={2}",k1,k2,k3);

Console.WriteLine("a={0}b={1}c={2}",a,b,c); bytet1=150,t2=110,t3;

t3=(byte)((t1-t2)/10); Console.WriteLine(t3);}}运行结果:类型转换隐式转换“低取值范围数据类型”自动转换为“高取值范围数据类型”实例代码:

inti=518;longb=i;floatf=i;显式转换显式转换又叫强制类型转换。转换格式(数据类型)表达式实例代码(char)65//int类型转换为char类型(int)6.28m//decimal类型转换为int类型装箱和拆箱

1.装箱转换值类型object类型隐式的实例代码:

inti=518;objectobj=i;2.拆箱转换

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论