传智播客C#基础笔记苏坤.docx

上传人:b****1 文档编号:311979 上传时间:2023-04-28 格式:DOCX 页数:56 大小:1.41MB
下载 相关 举报
传智播客C#基础笔记苏坤.docx_第1页
第1页 / 共56页
传智播客C#基础笔记苏坤.docx_第2页
第2页 / 共56页
传智播客C#基础笔记苏坤.docx_第3页
第3页 / 共56页
传智播客C#基础笔记苏坤.docx_第4页
第4页 / 共56页
传智播客C#基础笔记苏坤.docx_第5页
第5页 / 共56页
传智播客C#基础笔记苏坤.docx_第6页
第6页 / 共56页
传智播客C#基础笔记苏坤.docx_第7页
第7页 / 共56页
传智播客C#基础笔记苏坤.docx_第8页
第8页 / 共56页
传智播客C#基础笔记苏坤.docx_第9页
第9页 / 共56页
传智播客C#基础笔记苏坤.docx_第10页
第10页 / 共56页
传智播客C#基础笔记苏坤.docx_第11页
第11页 / 共56页
传智播客C#基础笔记苏坤.docx_第12页
第12页 / 共56页
传智播客C#基础笔记苏坤.docx_第13页
第13页 / 共56页
传智播客C#基础笔记苏坤.docx_第14页
第14页 / 共56页
传智播客C#基础笔记苏坤.docx_第15页
第15页 / 共56页
传智播客C#基础笔记苏坤.docx_第16页
第16页 / 共56页
传智播客C#基础笔记苏坤.docx_第17页
第17页 / 共56页
传智播客C#基础笔记苏坤.docx_第18页
第18页 / 共56页
传智播客C#基础笔记苏坤.docx_第19页
第19页 / 共56页
传智播客C#基础笔记苏坤.docx_第20页
第20页 / 共56页
亲,该文档总共56页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

传智播客C#基础笔记苏坤.docx

《传智播客C#基础笔记苏坤.docx》由会员分享,可在线阅读,更多相关《传智播客C#基础笔记苏坤.docx(56页珍藏版)》请在冰点文库上搜索。

传智播客C#基础笔记苏坤.docx

传智播客C#基础笔记苏坤

今天学习的第一句话:

Console.WriteLine(“你想显示的内容。

”);

第二句话:

Console.ReadKey();

当程序执行到Console.ReadKey();时,程序会停到这里,等待用户从键盘上键入一个键,用户键入这个键之后,程序才会继续执行。

在C#中,每一句话都必须以“分号”结束

C#中的注释,什么是注释呢?

对我程序进行的解释,注释是给人看的。

下面的一对指示可以折叠代码。

#region

内容

#endregion

MSIL:

微软中间语言MicrosoftIntermediateLanguage

CLR:

公共语言运行时CommonLanguageRuntime

CLS公共语言规范CommonLanguageSpecification

CTS:

通用类型系统CommonTypeSystem

JIT:

即时编译器JustInTime

第二天课程:

复习--

Console.WriteLine()

可以用CW加Tab键。

这样就能直接打出Console.WriteLine();

变量1:

变量:

变量代表着一块内存空间,我们可以通过变量名称向内存存\取数据。

有变量就不需要我们记忆复杂的内存地址。

向内存申请一块内存空间的语法:

数据类型变量名;

整数在我们C#中的数据类型叫int

Intnuber;

Double:

小数

Char:

字符型只能存储一个字符,并且存储的这个字符要求用单引号引起来

String类型:

字符串,就是把0个或1个或多个字符连接起来。

字符串要求用双引号引起来。

Decimal类型:

用来表示钱和货币,失精度

不至于丢失。

注意:

在C#开发环境中,直接写一个有小数点的数字,这个数字是double类型。

在一个小孩苏idan后面加个m\M,就告诉编译器这是个decimal类型

应该写成:

money=100.34m;

变量的命名规则:

1.必须以“字母”_或@符号开头、

2.后面可以跟任意“字母”,数字,下划线。

注意:

1.你起的变量名不要雨C#系统中的关键字重复。

2.在C#中,大小写是敏感的。

3.同一个变量名不允许重复定义(先这么认为,不严谨)。

●定义变量时,变量名要有意义

●C#变量名编码规范---Camel命名法:

⏹首个单词的首字母小写,其余单词的首字母大写。

●Pascal命名规范:

每一个单词第一个字母都大写。

●如果使用到英文单词的缩写,全部用大写。

在一个方法中,一般情况下变量只能定义一次(先这么认为),但可以多此赋值,再次赋值时,会把变量中原有的值给覆盖掉。

“+”在C#中有两种意义:

1.在数学中的加法运算:

两边参与加法运算的数据类型为数字类型,则“+

“表示数学上的加法意义。

2.是连接的意思:

两边参与加号运算的数据,有一个是字符类型,那么这个“+“好就是连接的意义。

 

在Console.WritLine(“”)中,第一个变量/

字符串中可以使用占位符。

占位符有{数字}组成,数字有0开始编号

第1个占位符:

{0}

第2个占位符:

{1}

第3个占位符:

{2}

………

Console.WriteLine();有多个参数时,输出都是第一个参数中的内容,从第二个参数开始都是用来替换第一个参数中的占位符的值,所以从第二个参数开始,要不要输出,就要看第一个参数中有没有相关的占位符。

例如:

Console.WriteLine(”{0}我叫”+name,”今年”+age+”岁了”);

输出结果是:

今年28岁了我叫张三

再学习一句话,用于让用户从键盘上输入一句话。

当程序执行到线面这句话,就会暂停,然后等待用户从键盘上输入一句,按回车程序将继续执行。

如果想得到用户输入的的内容,就需要定义一个string类型的变量,写在下面这句话前面,接收用户输入的内容。

Console.ReadLine();

接收用户输入的内容,必须定义一个字符串来进行接收。

Stringinput=Console.ReadLine();

转义字符:

什么时候用,当我们需要在字符串中输入一些特殊字符时,比如:

半角引号,换行,退格。

就需要使用转义字符。

转义字符是一个字符,他由一个\+一个字母来组成具有特殊意义的一个字符。

常用的转义字符:

\n换行

\bbackspace退格

\ttab键由多个空格组成的一个字符,具有行与行之间的对齐功能。

\\表示一个\

在字符串前面加一个@符号有两种意义:

1.字符串中如果有\,则不再理解为转义符。

2.使字符串可以换行

如果字符串前面加了@符号,在字符串上用2个双引号代表一个双引号。

C#中,有五个算术运算符:

+-*/%

他们二元运算符。

要求参与运算的两个操作数的类型必须相同,并且经过运算后的结果也与操作数的类型相同。

在算术表达式中,如果要改变计算的优先级,用小括号。

小括号可以无限制的套用,但一定要成对出现。

发生自动转换的条件:

1.参与运算(算术运算和赋值运算)的操作数和结果类型必须一致。

当不一致时,满足下面条件时,系统自动完成类型转换。

2.两种类型兼容

3.例如:

int和double兼容

4.目标类型大于源类型

5.例如:

double>int

自动转换中,转换是不会丢失进度的。

经常见到的就是,参与运算的两个操作数,一个是int,一个是double,那么int类型会自动转换乘double

如果一个操作数为double型,则整个表达式的运算结果为double类型。

当需要丢失精度的转换(如果从double3.14到int3的转换,会丢失0.14的精度)时,系统是不会帮我们自动转换的。

需要我们程序员来写代码完成转换。

(数据类型名)待转换的值;

注意:

下面的两种转换是错误的。

因为强制类型转换要求待转换的类型和目标类型必须都为数字。

//stringage=(int)Console.ReadLine;

//inta=(int)“33”;

Int变量=Convert.ToInt32(待转字符串);

上面语句的意义:

把待转字符串转换成int类型后赋给变量。

C#中的异常捕获如何完成:

Try

{

有可能出现错误的代码写在这里

}

Catch

出错后的处理

上面的程序如何执行:

如果try中的代码没有出错,则程序正常运行try中的内容后,不会执行catch中的内容。

如果try中的代码一旦出错,程序立即跳出catch中去执行代码,那么try的出错代码后面的代码不再执行。

一题:

try

{

Console.WriteLine("请输入天数");

intDay=Convert.ToInt32(Console.ReadLine());

intweek=Day/7;

intday=Day%7;

Console.WriteLine("{0}天是{1}周{2}天",Day,week,day);

}

catch

{

Console.WriteLine("请按正确格式输入");

}

Console.ReadKey();

其他练习:

{

try

{

stringname=Console.ReadLine();

Console.WriteLine("请输入语文成绩");

intchinese=Convert.ToInt32(Console.ReadLine());

Console.WriteLine("请输入语文成绩");

intmath=Convert.ToInt32(Console.ReadLine());

Console.WriteLine("请输入语文成绩");

intenglish=Convert.ToInt32(Console.ReadLine());

doublesum=chinese+math+english;

doubleave=(chinese+math+english)/3.0;

Console.WriteLine("{0}的总分数为{1}平均数为{2}",name,sum,ave);

}

catch

{

Console.WriteLine("请按照正确的输入方式输入");

}

Console.ReadKey();

Age++自加一有前加和后加

Age--自减一有前减和后减

例如:

Intage=18;

Intsum=age++-10;

上面代码age是后加。

所以在进行语句运算时,age++取age原值参与运算,所以sum=8

Intage=18;

Intsum=++age-10;

上面age是前加,所以在进行语法运算时—++age取age加一后的新值参与运算,所以sum=9

总之,不管是++age还是,进过运算后,agede值都进行了+1运算。

Intage=18;

Intsum=age++-10;

相当于:

Intage=18;

Intsum=age-10

Age=age+1

 

Intage=18;

Intsum=++age-10;

相当于:

Intage=18;

Age=age+1;

Intsum=age-10;

在C#中,一般情况下,一元运算符++--大于二元运算符+-。

复合运算符:

Age+=4理解为在Age的原值的基础上加4;

在C#中,有6个关系运算符,用于比较两个事物之间的关系。

<>==!

=>=<=

关于表达式:

由关系运算符连接起来的式子。

关系表达式的运算结果bool类型,bool类型只有连个值,一个是true,一个是false.

如果关于运算表达式成立,则这个表达式的值为true,否则为false。

逻辑运算符:

&&||!

逻辑与运算:

BoolisRight=表达式1&&表达式2

逻辑与连接的两个表达式,要能够求解成bool类型,一般情况都是关系表达式。

整个逻辑与运算的结束也是bool类型

表达式1

表达式2

逻辑与结果

True

True

True

True

false

false

false

True

False

false

false

False

两个表达式全为true,逻辑与才为true

逻辑或(或者):

BoolisRight=表达式1||表达式2

逻辑与连接的两个表达式,要能够求解成bool类型,一般情况都是关系表达式。

整个逻辑与运算的结束也是bool类型

表达式1

表达式2

逻辑或结果

True

True

True

True

false

True

false

True

True

false

false

False

有一个表达式为true,逻辑或就为true

逻辑非:

(取反)

这是一个一元运算符。

用法:

(布尔类型的表达式)

作用:

如果布尔类型的表达式为true,加!

号后,其整个式子的结果为false。

如果:

布尔类型的表达式为false,加!

号后,其整个式子的结果为true。

 

Console.WriteLine("张三请输入你的数学成绩");

doublemath=Convert.ToDouble(Console.ReadLine());

Console.WriteLine("张三请输入你的语文成绩");

doublechinese=Convert.ToDouble(Console.ReadLine());

boolreasult=chinese>=90&&math>=90;

Console.WriteLine(reasult);

Console.ReadKey();

Console.WriteLine("请输入一个年份");

intyear=Convert.ToInt32(Console.ReadLine());

boolreasult=year%400==0||year%4==0&&year%100!

=0;

Console.WriteLine(reasult);

Console.ReadKey();

逻辑与与逻辑或的短路问题:

例如:

Inta=10;

Intb=5;

(1)Boolresult=++a>5&&++b>1;

(2)Boolresult=++a>5||++b>1;

当逻辑与第一为假时第二个不再检查真假,直接输出false。

第二个不再运算。

当逻辑或第一个为真时。

第二个表达式不再检查真假。

直接输出true。

第二个数不再运算。

 

If结构的基本语法:

If(条件)

1.语句;

执行过程:

首先判断条件的结果,如果条件为true,则执行语句。

如果条件为false,则跳过语句1.执行后面的语句。

注意:

1.if后面的括号中的条件,要能计算成一个bool类型的值。

3.默认情况下,if语句只能待一句话。

即和if语句有关系的语句,只有语句1.

执行过程:

如果条件为false,那么将跳过if所带的语句块中的所有语句。

要求:

我们在写程序时,哪怕if语句只带一句话,也要把他写在大括号中。

If-else结构

语法:

If(条件)

{语句1;}

Else

{语句2;}

执行过程:

如果条件为true,则执行if带的语句块1,并且跳过else带的语句块2.

如果条件为false,则跳过if带的语句块1,执行else带的语句块2.

上面两个语句块,根据条件结束为true或false,总要执行一个。

练习三:

Console.WriteLine("请输入a的值");

inta=Convert.ToInt32(Console.ReadLine());

Console.WriteLine("请输入b的值");

intb=Convert.ToInt32(Console.ReadLine());

if((a%b==0)||(a+b>100))

{

Console.WriteLine("a={0}",a);

}

else

{

Console.WriteLine("b={0}",b);

}

Console.ReadKey();

Console.WriteLine("请输入您的成绩");

intscore=Convert.ToInt32(Console.ReadLine());

if(score>=90)

{

Console.WriteLine("您的成绩为A")

;

}

elseif(score<90&&score>=80)

{

Console.WriteLine("您的成绩为B");

}

elseif(score<80&&score>=70)

{

Console.WriteLine("您的成绩为C");

}

elseif(score<70&&score>=60)

{

Console.WriteLine("您的成绩为D");

}

else

{

Console.WriteLine("您的成绩为E");

}

Console.ReadKey();

在if-elseif语句中。

只有当上一个条件不成立时,才会进入下一个if语句并进行if语句后面的条件判断。

一旦有一个if后面的条件为true,则执行if所带的语句(块),语句(块)执行完成后,程序跳出if-elseif结构。

如果所有的if条件都不成立,则如果最后有else则执行else所带的语句,否则什么都不执行。

注意:

代码自动排版对齐快捷键:

Ctrl+k+f

Else离它最近的if是一对

练习一:

Console.WriteLine("请输入密码");

stringpassWord=Console.ReadLine();

if(passWord=="888888")

{

Console.WriteLine("密码输入正确");

}

else

{

Console.WriteLine("密码错误请重新输入");

}

Console.ReadKey();

练习2:

Console.WriteLine("请输入用户名");

stringuserName=Console.ReadLine();

Console.WriteLine("请输入密码");

stringpassWord=Console.ReadLine();

if(userName=="admin")

{

if(passWord=="888888")

{

Console.WriteLine("输入正确可以登陆");

}

else

{

Console.WriteLine("密码错误请重新登陆");

}

}

else

{

Console.WriteLine("用户名不存在请重新登陆");

}

Console.ReadKey();

练习三:

Console.WriteLine("请输入您的年龄");

intage=Convert.ToInt32(Console.ReadLine());

if(age>=18)

{

Console.WriteLine("可以观看该电影");

}

elseif(age>=10)

{

Console.WriteLine("用户是否继续观看(yes,no)");

stringisRight=Console.ReadLine();

if(isRight=="yes")

{

Console.WriteLine("请观看");

}

if(isRight=="no")

{

Console.WriteLine("退出观看");

}

}

else

{

Console.WriteLine("未到年龄退出观看");

}

Console.ReadKey();

Switch-case语句:

语法:

Switch(表达式)

Case值1:

语句块1;

Break;

Case值2:

语句块2;

Break;

Default:

语句块3;

Break;

执行过程:

首先计算表达式,然后根据计算结果与匹配case后面的值,如果有匹配项,则执行匹配项后面的语句,知道break语句跳出switch-case。

如果所有的case值都不匹配,那么有default则执行default后面的语句,知道break结束。

如果没有default,则跳出switch-case,什么都不执行。

注意:

匹配时和default的位置没有关系,只和值有关系。

练习:

{

Console.WriteLine("请输入工资评定(A-E)");

stringimput=Console.ReadLine();

decimalgongzi=5000m;

boolflage=false;

switch(imput)

{

case"A":

gongzi+=500;

break;

case"B":

gongzi+=200;

break;

case"C":

break;

case"D":

gongzi-=200;

break;

case"E":

gongzi-=500;

break;

default:

Console.WriteLine("您输入不在此范围内,请重新输入");

flage=true;

break;

}

if(flage==false)

{

Console.WriteLine("您的实际工资为:

{0}元",gongzi);

Console.ReadKey();

}

Console.ReadKey();

If-elseif与switch的比较

相同点:

都可以实现多分枝结构

不同点:

switch:

一般只能用于等值比较

If-elseif:

可以处理范围

三:

Console.WriteLine("请输入年份");

intyear=Convert.ToInt32(Console.ReadLine());

Console.WriteLine("请输入月份");

intmouth=Convert.ToInt32(Console.ReadLine());

if((year/400==0)||((year/4==0)&&(year/100!

=0)))

{

switch(mouth)

{

case2:

Console.WriteLine("该年该月有29天");

break;

case4:

Console.WriteLine("该年该月有30天");

break;

case6:

Console.WriteLine("该年该月有30天");

break;

case9:

Console.WriteLine("该年该月有30天");

break;

case11:

Console.WriteLine("该年该月有30天");

break;

default:

Console.WriteLine("改年该月有31");

break;

}

}

else

{

switch(mouth)

{

case2:

Console.WriteLine("该年该月有28天");

break;

case4:

Console.WriteLine("该年该月有30天");

break;

case6:

Console.WriteLine("该年该月有30天");

break;

case9:

Console.WriteLine("该年该月有30天");

break;

case11:

Console.WriteLine("该年该月有30天");

break;

default:

Console.WriteLine("改年该月有31");

break;

}

Console.ReadKey();

四:

Console.WriteLine("请输入你的成绩");

intinput=Convert.ToInt32(Console.ReadLine());

intmod=input/10;

switch(mod)

{

case9:

Console.WriteLine("

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2