一、格式化字符
- 占位符
- 标准数字字符串格式化
- 转义符
- 回车换行/水平制表格
using System;
namespace Day02
{
class Program
{
static void Main(string[] args)
{
string gunName = "AK47";
string ammoCapacity = "30";
Console.WriteLine("枪的名称为:" + gunName + ",容量为:" + ammoCapacity + "." );
string str = string.Format("枪的名称为:{0},容量为:{1}.", gunName, ammoCapacity);
Console.WriteLine(str);
Console.WriteLine("金额:{0:c}",10);
Console.WriteLine("{0:d2}", 5);
Console.WriteLine("{0:f1}", 1.26);
Console.WriteLine("0:p0", 0.1);
Console.WriteLine("我爱\"unity!\"");
char c1 = '\'';
char c2 = '\0';
Console.WriteLine("你好,\r\n我是\t哆啦A梦。");
}
}
}
二、运算符
1、赋值运算符
- 将右边的结果赋值一份给左边
int a=1; - 赋值表达式自身也有值,其本身值为所赋值
int num01,num02; num01 = num02 = 1;
2、算术运算符
- 对数值类型(整型、非整型)进行算术运算的符号
- 包括:加+
????
~~~~
???? 减-
????
~~~~
???? 乘*
????
~~~~
????除/
????
~~~~
????取模%
- String 类型可以使用+ ,意为字符的拼接
3、比较运算符
- 判断数值间大小关系的符号
- 包括:大于>
????
~~~~
???? 小于<
????
~~~~
???? 大于等于≥
小于等于≤
????
~~~~
???? 等于==
????
~~~~
???? 不等于 != - bool isEqual =1!=2; —true
- string 类型可以使用==和!=,意为文本是否相同
4、逻辑运算符
- 判读bool值关系的符号
- 包括:与&&
????
~~~~
???? 或||
????
~~~~
???? 非!
- 参与逻辑运算的变量或表达式都是bool类型,结果也为bool类型
- 短路逻辑:
1>对于&&运算符,当第一个操作数为false时,将不会判断第二个操作数,因为此时无论第二个操作数为何,最后的运行结果一定时flase。 2>对于||运算符,当第一个操作数为true时,将不会判断第二个操作数,因为此时无论第二个数为何,最后的运算结果一定是true。
5、快捷运算符
- 包括:+=
????
~~~~
????-=$~~~~$0*=
????
~~~~
???? /=
????
~~~~
???? %=
6、一元运算符
- 操作数只有1个的运算符;
- 包括:++
?
~
? -
?
~
?-
- 后缀增量操作 i++:返回的结果为自增以前的值
- 前缀增量操作 ++i:返回的结果为自增以后的值
- 注意:逻辑难理解,以++为例
(1)先加还是后加,对于[下一条指令],都是自增以后的值; (2)后加后自增,先返回值 (3)先加先自增,后返回值
int number01 = 1;
number01++;
Console.WriteLine(number01);
int number02 = 1;
++number02;
Console.WriteLine(number02);
int number03 = 1;
Console.WriteLine(number03++);
Console.WriteLine(number03);
int number04 = 1;
Console.WriteLine(++number04);
Console.WriteLine(number04);
8、三元运算符(条件运算符)
- 格式为:数据类型
??
~~
??变量名
??
~~
??=
??
~~
??条件
??
~~
???
??
~~
??满足条件结果
??
~~
??:不满足条件结果
9、优先级
- 准则:先乘除后加减,小括号优先级最高
具体: 请点击.
10、代码
using System;
namespace Day02
{
class Program
{
static void Main()
{
int n1 = 5, n2 = 2;
int r1 = n1 / n2;
int r2 = n1 % n2;
bool r3 = n1 % 2 == 0;
int r4 = n1 % 10;
string s1 = "5", s2 = "2";
string r5 = s1 + s2;
bool r6 = n1 == n2;
bool r7 = s1 == s2;
bool r8 = true && true;
bool r8 = false && true;
bool r8 = true && false;
bool r8 = false && false;
bool r9 = true || true;
bool r9 = false || true;
bool r9 = true || false;
bool r9 = false || false;
bool r10 = !true;
int num01 = 1;
num01 = num01 + 5;
num01 += 5;
Console.WriteLine(num01);
int number01 = 1;
number01++;
Console.WriteLine(number01);
int number02 = 1;
++number02;
Console.WriteLine(number02);
int number03 = 1;
Console.WriteLine(number03++);
Console.WriteLine(number03);
int number04 = 1;
Console.WriteLine(++number04);
Console.WriteLine(number04);
string str01= 1>2?"ok":"no";
float r11 = 1 == 1 ? 1.2f : 1.5f;
int r12 = (1 + 2) * 4;
}
}
}
三、数据类型转换
1、Parse转换:string转换为其他类型数据
注意:待转数据必须“像”该数据类型
string strNumber = "18";
int num01 = int.Parse(strNumber);
float num02 = float.Parse(strNumber);
2、ToString转换:任意类型转换为string类型
int number = 18;
string str = number.ToString();
3、隐式转换:由小范围到大范围的自动转换
byte b1 = 100;
int i1 = b1;
- 多种类型变量参与的运算,会产生类型提升:
– 其中一方为long类型,结果为long类型 – 其中一方为float类型,结果为float类型 – 其中一方为double类型,结果为double类型 – 其中一方为decimal类型,结果为decimal类型 – 其余运算结果为int类型
byte number01 = 1;
short number02 = 2;
int result = number01 + number02;
byte b = 1;
b += 3;
b = b + 3;
4、显式转换:由大范围到小范围的强制转换
注意:有可能发生精度的丢失
int i2 = 100;
byte b2 = (byte)i2;
四、小结
- 运算符是使C#执行一个动作的符号;
- 当两个整数相除时,C#舍弃所有余数;
- 如果要在赋值之前使变量的值递增,使用前置运算符(++x);如果要在赋值之后使变量的值递增,则使用后置运算符(x++)。这个规则同样适用于递减运算符;
- (++x)和(x++)只对本行赋值有影响,对下一行的结果无影响(相同);
- 编译器执行运算操作遵循一系列的优先级规则,并且圆括号优先级最高。
|