数据类型转换
请思考一个问题:1个小盒子可以放10个苹果,中盒子可以放100个苹果,大盒子可以放1000个苹果,请问小盒子里的苹果可以放到中盒子里吗?可以放到大盒子里吗?那么反过来呢?
隐式转换(自动转换)-类型兼容的情况下,范围小的可以自动转为范围大的,但反之是不行的。
int a1 = 10;
long a2 = a1;
思考一下,为什么?
显式转换(强制转换)-类型兼容的情况下,将范围大的强制转换为范围小的,一般不要这样做,因为很可能发生数据溢出。
long a3= 100
int a4= (int)a3;
数值型和字符串的相互转换
1、数值型转为字符串
利用数值类型的ToString方法:
int hp = 300;
string s1 = hp.ToString(); // s1 = “300”;
string s2 = “”+hp;
2、字符串转为数值型
string s2 = “18”;
int age= Int32.Parse(s2); // age= 18;
age = Convert.ToInt32(s2);
让机器人可以和你交互:
使用Console类实现控制台的输入输出
向控制台输出指定的字符不换行- Console.Write(“要显示的字符串,不换行”);
向控制台输出指定的字符并换行- Console.WriteLine(“要显示的字符串,会自动换行”);
接收用户的输入- string 用户输入的字符串 = Console.ReadLine();
等待用户的输入- Console.ReadKey();
使用Console类实现控制台的输入输出
向控制台输出指定的字符不换行- Console.Write(“要显示的字符串,不换行”);
向控制台输出指定的字符并换行- Console.WriteLine(“要显示的字符串,会自动换行”);
接收用户的输入- string 用户输入的字符串 = Console.ReadLine();
等待用户的输入- Console.ReadKey();
运算符
根据操作数的不同,分为一元、二元、三元操作符。
1、赋值运算符
运算符 | 含义 |
---|---|
= | 直接赋值 |
+= | 加法赋值 |
-= | 减法赋值 |
*= | 乘法赋值 |
/= | 除法赋值 |
%= | 模赋值 |
2、增减运算符
运算符 | C# | C/C++ | Delphi | Visual Basic |
---|---|---|---|---|
增 | ++ | ++ | Inc() | 无 |
减 | – | – | Dec() | 无 |
3、算术运算符
运算符 | C# | C/C++ | Delphi | Visual Basic |
---|---|---|---|---|
加 | + | + | + | + |
减 | - | - | - | - |
乘 | * | * | * | * |
浮点数除 | / | / | / | / |
整数除 | / | / | div | / |
取模 | % | % | mod | mod |
运算符操作数的类型自动提升 -如果两个操作数类型不同,范围小的类型会自动提升为范围大的类型。
4、位运算符(针对二进制的每一bit进行操作)
运算符 | C# | C/C++ | Delphi | Visual Basic |
---|---|---|---|---|
与 | & | & | and | and |
或 | 丨 | 丨 | not | not |
取反 | ~ | ~ | or | or |
亦或 | ^ | ^ | xor | xor |
左移 | << | << | shl | 无 |
右移 | >> | >> | shr | 无 |
5、逻辑运算符
运算符 | C# | C/C++ | Delphi | Visual Basic |
---|---|---|---|---|
逻辑与 | && | && | And | And |
逻辑或 | 丨丨 | 丨丨 | Or | Or |
逻辑非 | ! | ! | Not | No |
【表达式1&&表达式2】:当表达式1、2全为true时,其最终的结果为true;只要有一个表达式为false,则最终的结果为false。
【表达式1||表达式2】:当表达式1、2有一个为true时,其结果为true;如果两个表达式都为false时,则最终的结果为false。
【!表达式】:如果表达式的结果为true,则取反后为false,反之为true。
6、关系运算符
运算符 | C# | C/C++ | Delphi | Visual Basic |
---|---|---|---|---|
相等 | == | == | = | =或is |
不相等 | != | != | <> | <> |
大于 | > | > | > | > |
小于 | < | < | < | < |
小于等于 | <= | <= | <= | <= |
大于等于 | >= | >= | >= | >= |
逻辑、比较运算符的结果是bool类型,只有true/false两种结果
7、运算符的优先级
优先级 | 运算符类型 | 运算符 |
---|---|---|
优先级最高 | 一元运算符 | [] . ()(方法调用) |
! ~ ++ – new ()(强制类型转换) | ||
优先级较高 | 算术运算符 | * / % + - |
位移运算符 | << >> | |
优先级较低 | 关系运算符 | < <= > > == != |
位移运算符 | & ^ 丨 | |
逻辑运算符 | && 丨丨 | |
?: (三元判断运算符,例如:A>B?X:Y) | ||
优先级最低 | 赋值运算符 | = |
+= -= *= /= %= |