·运算符
数学运算符:+ - * / %
比较运算符:< > = <= >= != 返回bool值
逻辑运算符:&&并且、||或者,两者运行顺序无先后
逻辑非"!": 只作用于紧跟的代码,数学运算符(在有括号的情况下成立)<优先级<比较运算符
运算顺序:"(* / %)">"(+ -)", 逻辑运算符,赋值运算符“=”
自增“++”自减“--”:写在变量前就先++后赋值,优先级>加减乘除模;写在变量后就先赋值后++,优先级<加减乘除模。如:
int a = ;
int b = ;
int c = ++a + b;
int d = a++ + b;
Console.WriteLine(c +","+ d+","+a);
c,d,a的输出结果分别是1,1,2
条件运算符 (比较表达式)?(满足表达式:语句一):(不满足表达式:语句二)
其他赋值运算符:+= -= /= *= %=
·数据类型
值类型
int,long,double,float,decimal
1.sbyte--有符号 byte--无符号(正数)255
2.int long short--有符号 uint ulong ushort--无符号
3.enum枚举 struct结构体
引用类型
1.class 委托 dynamic 接口 object string
2.object基类 所有类型的父类(统称)
3.string分段方法:string.Join("分隔符",string数组)
常量(const)
const使变量转换为常量,方法:const int = 1
隐式类型
var myInt= 0;var myBool = true……(强类型数据,通过var来代替正式的数据类型名)
匿名类型
var student = new {name = "李明", Age = 19}
=>class student{ public string name{get;set} public int age{get;set}} student s = new student{name = "李明",age = 19}
用自动属性封装各个数据。
·类型转换
1、值类型转为值类型:强制转换。例:
int i = ; int s = ;
double jieguo = (double)i/s; double i1 = 4.5; int s1 = ;
double jieguo1 = i1 / (double)s1;
2、值类型转换成引用类型:显式转换。例:
//转换为字符串ToString
string j = i.ToString();
Console.WriteLine(j);
//j现在是字符串形式
3、引用类型转换为值类型:隐式转换(需要在值类型的承受范围内,如“1.23”就不能转换成int整数型)。例:
string st = "1.35";
double dd = double.Parse(st);
double ds = Convert.ToDouble(st);//另一种方法 int ss = int.Parse(st);//Wrong!不能运行
int ii = (int)double.Parse(st);//转换为整型时需要先转换为double型,默认取floor值 Console.WriteLine(dd);//结果是1.35
Console.WriteLine(ii);//结果是1
·练习:
1、从控制台输入底面半径和高,求圆柱的表面积
Console.WriteLine("请输入底边半径和高:");
double di = double.Parse(Console.ReadLine());
double h = double.Parse(Console.ReadLine());
double dimianji = 3.14 * r * r;
double cemianji = * 3.14 * r * h;
double biaomianji = dimianji * + cemianji;
Console.WriteLine("圆柱的表面积是:{0}",biaomianji);
查看答案
2、(含if语句的)从控制台输入一个月份,如果这个月份是1~6月,就输出“这是上半年”,否则输出“这是下半年”
Console.WriteLine("请输入一个月份:");
int mon = int.Parse(Console.ReadLine());
bool pan = mon<=;
if (pan == true)
Console.WriteLine("这是上半年");
else
Console.WriteLine("这是下半年");
查看答案