一、Convert类型转换
如果相兼容的两个变量,可以使用自动类型转换或者强制类型转换,但是,如果两个类型的变量不兼容,比如 string与int或者string 与double,这个时候我们可以使用一个叫做Convert的转换工厂进行转换。
//显示类型转换(int->double)、强制类型转换(double->int) string s = "123"; //将字符串转换成int或者double类型 int a = Convert.ToInt32(s); double b=Convert.ToDouble(s); Console.WriteLine(a); Console.WriteLine(b); Console.ReadKey();
注意:
使用Convert进行类型转换,也需要满足一个条件:面儿上必须要过的去。
//这种情况就无法转换 string s = "123abc"; int a = Convert.ToInt32(s); double b=Convert.ToDouble(s);
还有两种类型转换见:2.C#基础 十五、类型转换
/*题目1:让用户输入姓名 语文 数学 英语 三门课的成绩,然后给用户显示:XX,你的总成绩为XX分,平均成绩为XX分。*/ Console.WriteLine("请输入你的姓名:"); string name = Console.ReadLine(); Console.WriteLine("请输入你的语文成绩:"); double Chinese = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("请输入你的数学成绩:"); double Math = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("请输入你的英语成绩:"); double English = Convert.ToDouble(Console.ReadLine()); double Sum = Chinese + Math + English; double Avg = Sum / 3; Console.WriteLine("{0},你的总成绩为{1}分,平均成绩为{2:0.00}分。", name, Sum, Avg);//平均成绩保留两位小数 Console.ReadKey();
/*题目2:让用户输入一串数字,打印出的数字是输入数字的倍*/ //提示用户输入一个数字,接受并且向控制台打印用户输入的这个数字的2倍 Console.WriteLine("请输入一个数字:"); //string StrNum = Console.ReadLine(); //将用户输入的字符串转换为int或者double类型 //double num= Convert.ToDouble(StrNum); double num = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("该数字的2倍是:"); Console.WriteLine(num*2); Console.ReadKey();
二、算数运算符
++ | - - |
分为前++和后++,不管是前++还是后++,最终的结果都是给这个变量加一。 | 与++相反 |
int num = 10; //num++为11,++num为11 //num++; //++num; //num--为9,--num为9 //num--; --num; Console.WriteLine(num); Console.ReadKey();
区别表现表达式当中,如果是前++,则先给这个变量自身加一,然后带着这个加一后的值去参与运算。 如果是后++,则先拿原值参与运算,运算完成后,再讲这个变量自身加一。
下面用4个案例来解释:
int num = 10; int result = 10 + ++num; //num为11 Console.WriteLine(num); //result为21 Console.WriteLine(result); Console.ReadKey();
int num = 10; int result = 10 + num++; //num为11 Console.WriteLine(num); //result为20 Console.WriteLine(result); Console.ReadKey();
int num = 10; int result = 10 + num--; //num为9 Console.WriteLine(num); //result为20 Console.WriteLine(result); Console.ReadKey();
int num = 10; int result = 10 + --num; //num为9 Console.WriteLine(num); //result为19 Console.WriteLine(result); Console.ReadKey();
三、一元运算符和二元运算符
一元运算符:
对于向加加或者减减这样只需要一个操作数就能完成的运算。
二元运算符:
(+ - * / % )对于这些需要两个或以上才能完成运算的操作符。
一元运算符的优先级要高于而元运算符。
如果在一个表达式当中,既有一元运算符,又有二元运算符,我们首先计算一元运算符。
int a = 5; // 31= 5 + 7 * 2 + 6 + 6 int b = a++ + ++a * 2 + --a + a++; //a=7,b=31 Console.WriteLine(a); Console.WriteLine(b); Console.ReadKey();
运算符表:
四、关系运算符
关系运算符:
关系运算符是用来描述两个事物之间的关系。
> | < | >= | <= | == | != |
大于 | 小于 | 大于等于(不小于) | 小于等于(不大于) | 等于等于 | 不等于 |
由关系运算符连接的表达式称之为关系表达式。
在c#中我们用bool类型来描述对或者错。 bool类型的值只有两个 一个true 一个false
//大象的重量(1500)>老鼠的重量(1) bool b= 1500 > 1; //运算结果为True Console.WriteLine(b); Console.ReadKey();
五、逻辑运算符
逻辑表达式:
由逻辑运算符连接的表达式叫做逻辑表达式。
&& | (两个竖线) | ! |
逻辑与 | 逻辑或 | 逻辑非 |
//逻辑或为两个竖线-> || //上面由于格式问题无法表示,请读者谅解
逻辑与 &&
表达式1 | 表达式2 | 表达式1&&表达式2 |
True | True | True |
False | True | False |
True | False | False |
False | False | False |
逻辑或 ||
表达式1 | 表达式2 | 表达式1或表达式2 |
True | True | True |
True | False | True |
False | True | True |
False | False | False |
逻辑非 !
表达式 | !表达式 |
True | False |
False | True |
逻辑运算符两边放的一般都是关系表达式或者bool类型的值。
/*题目3:让用户输入小明的语文和数学成绩,输出以下判断是否正确,正确输出True,错误输出False 1)小明的语文和数学成绩都大于90分 2)语文和数学有一门是大于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(a); Console.WriteLine(b); Console.ReadKey();
优先级查看“三、一元运算符和二元运算符 运算表”
/*题目4:让用户输入一个年份,如果是润年,则输出true,如果不是,则输出false.*/ Console.WriteLine("请输入一个年份:"); int year = Convert.ToInt32(Console .ReadLine()); /*年份能够被400整除.(2000) 年份能够被4整除但不能被100整除.(2008)*/ bool a= (year % 400 == 0) || (year % 4 == 0 && year % 100 != 0);//先与再或 Console.WriteLine(a); Console.ReadKey();
六、复合赋值运算符
总结
提示:这里对文章进行总结:用笔记和思维导图来展示。
/*复习*/ /* 变量类型:int,double,string,char,decimal,bool * 运算符: * 赋值运算符:+=,-=,*=,/=,%= * 算术运算符:+,-,*,/,%,++,-- * 关系运算符:>,<,>=,<=,==,!= * 逻辑运算符:&&,||,! * 类型转换: * 1.自动类型转换:小的转大的,int->double * 2.强制类型转换:大的转小的,double->int * 3.Convert */