第二章 C#基本数据类型

时间:2023-03-08 17:42:14

第一节 1-关键字和标识符
关键字:会不同颜色显示
标示符:由字母、中文、数字、下划线组成,不能以数字开头,不能是关键字,不能含有特殊符号,如:@,$
思考:下列哪些是合法的标识符?a1、1a、a_b、_1a、@c5、a$b
变量命名法:
驼峰命名法:每个单词第一个字母大写,如Console.WriteLine

第二节2-变量的声明和赋值、变量的作用域
1.所有数据都存在内存中,
2.局部变量在使用前必须赋值
3.变量的作用域,只在{}里面起作用

第三节3-数值类型简介和显式隐式转换
数据类型:
1.数值类型,默认定义时是int和double
数据类型 占用字节 取值范围
byte(字节) 1 0~255 代表一个8位进制,也就是一个字节
short(短整型) 2
int(整型) 4
long(长整型) 8
float(单精度浮点数) 4
double(双精度浮点数) 8
2.怎样理解字节?字节越大,表示的范围就越大,精度就越高
3.类型转换
隐式类型转换:程序内部自动转换,只能将小范围的数据类型转换为大范围的数据类型,编译的时候只看类型
byte b1 = 5;
int i2 = b1;
显式类型转换:也叫强制类型转换
int i1 = 3;
byte b2 = (byte)i1;

第四节4-float和double的声明类型转换等问题
1.小数数据类型
定义double数据类型时可以不带d(D),但定义float时,一定要在后面加f(F),因定义小数类型时,默认是double
2.小数类型计算问题
两个数字相除,默认是整数,可以在后面加小数点或加f和d

第五节5-String的声明主要是转义符的问题
一.常用数据类型
1.string(String),定义时将字符串用双引号括起来
输出特殊字符
"\"表示后面的字符有特殊含义,两个"\\"代表输出一个"\"
要想输出a"b,可以在"前面加一个\,如a\"b
要想输出a\n,如:a\\nb
定义一个路径时,可以在路径前面加@,如@c:\1\1.txt,@告诉编译器\只代表一个普通的\,@只对\起作用

第六节6-char、bool以及string和数值类型的转换
1.char,字符类型,有且只有一个字符,用单引号括起来
char ch1 = '\n';
char ch2 = '\\';
2.bool类型,只有true和bool
3.获得某数据的最大与最小值:
数据类型.MaxValue与数据类型.MinValue
如:int.MaxValue
4.数字转字符串,用Convert.ToString(),Convert是转换的意思
如:
int i = 10;
string s1 = Convert.ToString(i); //建议使用这种
string s2 = i.ToString(); //当i为null时会出错
5.字符串转数字,用Convert.ToInt32()
如:
string s = "123";
int i = Convert.ToInt32(s);

第七节7-CTS(大写String和小写string区别是什么?
1.CTS
Int32 i1 = 32;
int i2 = 32;
Console.WriteLine(i1);
Console.WriteLine(i2);
Console.ReadKey();

第八节8-枚举类型
定义枚举用enum关键字
如:
enum Dir
{
ont,two,three,fore
}
使用时:Dir d = Dir.fore;

第九节9-基本运算符(余、自增自减、字符串和其他类型相加)
1.基本运算符
+号运算符,字符串与数字相加时,是将数字转换为字符串(Convert.ToString)再连接
"hello"+5+5,结果是hello55,先将hello与5相连,再用hello5与5相连
5+5+"hello",结果是10hello,先运算5+5=10,再用10与hello相连
"hello"+(5+5),结果是hello10,先运算括号里的值5+5=10,再用hello与10相连

第十节10-赋值运算符和实现加法计算器
int i = 10;
if (i = 10) //C#中if表达式只能是bool,不能是int或其它数据类型,这里语法上错误
{
...
}
但下面的语句是可以运行的,只要if表达式里面是bool类型即可
bool b = false;
if (b = true) //当if判断语句中成立时就执行下面的代码
{
Console.WriteLine(10);
}

第十一节11-变量的复制传递和交换两个变量的值
1.值类型的赋值(数值类型)、boolean,char,枚举,结构体等是复制传值
int i=10;
int j=i;
i=20;
2.作业:
不用第三方变量交换两个数字

第十二节12-关系运算符和运算符优先级
1.比较运算符,运算结果只有true和false
==,!=,>=,<=,>,<
=号是赋值,==是判断
int x = 5;
Console.WriteLine(x = 5);//这里是将5赋值给x,再打印x的值
Console.ReadKey();

第十三节13-赋值表达式也有值
1.赋值表达式也有值,这个值就是赋值之后左边的值
int i = (a=b)+3;先将b的值赋给a,再用a与3相加,然后赋值给i

第十四节14-前自增和后自增的区别
i++与++i的区别:
i++是赋值后再自增
++i是自增后再赋值

第十五节15-逻辑运算符(与或非)
1.逻辑运算符
&&(并且),二元运算符
||(与),二元运算符
!(非),一元运算符Console.WriteLine(!true);

第十六节16-逻辑运算符的短路问题
1.短路运算
&&当第一个为false的时候,整个运算结果一定是false,就没必要算第二了
int i = 8;
bool b = (i >10) && ((i = i + 5) > 10);
由于i>10不成立,所以不会运算((i = i + 5) > 10)后面的值,i的值还是8

第十七节17-三元运算符
案例:Console.WriteLine((i % 3 == 0 ) ? "i能被3整除" : "i不能被3整除");
练习:输出i是否是偶数

第十八节18-if简介
练习题:
1.用户输入出生的月份、日期,计算用户的"星座",然后显示这个星座的;
白羊3.21-4.20 金牛4.21-5.21 双子5.22-6.21 巨蟹6.22-7.22 狮子7.23-8.23 处女8.24-9.23 天秤9.24-10.23 天蝎10.24-11.22 射手11.23-12.21 魔羯12.22-1.20 水瓶1.21-2.19 双鱼2.20-320

第二十五节25-switchcase
1.switch(表达式)
{
case 值取1:
//语句
break;
case 取值2:
//语句
break;
...
default:
//语句
break;
}
表达式可以是byte,short,int,char,string,枚举类型
2.break意味着switch的结束,default相当于if的else,当所有case都不匹配时才执行default
3.当进行单个离散值判断的时候,switch可以用来代替if,switch能做的if都能做,反之if能做的switch不一定能做。
练习:
使用switch case 实现"月份季节判断"