主要内容
- Convert类型转换
- 加加减减
- 运算顺序
- 复合赋值运算符
- 关系运算符
- 逻辑运算符
Convert类型转换
- Convert转换工厂可以使得不兼容的两种类型(e.g.string和int)进行转换
- 语法:
double double1 = Convert.ToDouble(string1);
int int1 = Convert.ToInt32(string2);//32是指位数
- 条件: 面上要过得去
如果上两个例子中string2=”123abc”就会报错, 即语法正确, 但程序错误无法继续
//练习: 让用户输入姓名和大三门成绩, 输出姓名和平均分
Console.WriteLine("姓名?");
string name = Console.ReadLine();
Console.WriteLine("语文?");
string strChinese = Console.ReadLine();
Console.WriteLine("数学?");
string strMath = Console.ReadLine();
Console.WriteLine("英语?");
string strEnglish = Console.ReadLine();
//注意变量的命名规范
double chinese = Convert.ToDouble(strChinese);
double math = Convert.ToDouble(strMath);
double english = Convert.ToDouble(strEnglish);
Console.WriteLine("你叫:{0}, 三门的总成绩是{1}, 平均分是{2:0.0}", name, (chinese+math+english), (chinese+math+english)/3);
Console.ReadKey();
加加减减
- 语法:
int num = 10;
num++;//11
++num;//12
num--;//11
--num;//10
- 加加减减分前后, 无论哪一种变量自身结果都会加或减1
- 前置: 先±1, 再参与运算
- 后置: 先参与运算, 再±1
int num = 10;
int result1 = 5 + ++num;
int result2 = 12 + num--;
- 上面的事例的效果与下面的代码产生的效果一致
int num = 10;
num = num + 1;
int result1 = 5 + num;
int result2 = 12 + num;
num = num - 1;
int a = 5;
int b = a++ + ++a * 2 + --a + a++;
//a = 5 +1 +1 -1 +1 = 7
//b = 5 + 7*2 + 6 + 6 = 31
运算顺序
- 对于只需要一个操作数就可以完成的运算符, 称之为一元运算符
例如: ++ 和 — -
同样地, 两个操作数就是二元运算符
一元运算符的优先级高于二元运算符
从左到右依次运算 -
上面例子的详细解释如下:
|步骤|a的值|b的值|
|:-:|:-:|:–|
|1|6|5 + ++a * 2 + –a + a++|
|2|7|5 + 7 * 2 + –a + a++|
|3|6|5 + 7 * 2 + 6 + a++|
|4|7|5 + 7 * 2 + 6 + 6|
|5|7|31|
复合赋值运算符
- 种类:
- +=
- -=
- *=
- /=
- %=
- 其实就是运算式的缩写
关系运算符
- 关系运算符是用来描述两个值之间关系的符号
由关系运算符连接的表达式称之为关系表达式, 结果是布尔类型 - 种类:
- > 和 >=
- \< 和 \<=
- ==
- !=
- bool类型: 描述对与错, 只有两个值: True 和 False
逻辑运算符
- 逻辑运算符是用来描述两个值之间逻辑关系的符号
由逻辑运算符连接的表达式称之为逻辑表达式
其两端一般都是 关系表达式 或者 bool类型的值
结果同样也是bool类型的值 - 类型:
- && 逻辑与(btw, 这个的表达式叫做”逻辑与表达式”)
- || 逻辑或
- ! 逻辑非
//练习: 输入成绩, 做出判断
//语文和数学成绩都大于90, 有一门是大于的
Console.WriteLine("请输入语文成绩");
double chinese = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("请输入数学成绩");
double math = Convert.ToDouble(Console.ReadLine());
bool a = chinese > 90 && math > 90;
bool b = chinese > 90 || math > 90;
Console.WriteLine("两个结果分别是:\n{0}\n{1}",a,b);
Console.ReadKey();
小贴士
- 在给类文件起名的时候需要注意两点:
- 尽量不要重命名, 如果该类文件的名称, 代码中的class不会随之改变
这在之后调用的时候会出现问题, 最好的方法还是删除重新创建 - 命名时不要使用关键字, 否则对应的关键字将失效