异常捕获
使用异常捕获可以捕获出现异常的代码块,避免由于异常抛出引起的程序卡死的情况发生。
try{}catch{}finally{}结构
//异常捕获
try
stringstr=Console.ReadLine();
inti=int.Parse(str);
Console.WriteLine("输入的字符串数值转为int的数值"+i);
}catch
Console.WriteLine("请输入合法数字");
}finally
//无论正常执行还是是否进行异常捕获就会执行
Console.WriteLine("执行完毕");
运算符
算术运算符
算术运算符是英文数值类型变量运算的运算符,运算结果依然为数值。
形参运算符:=
注意:形参运算符理解将右侧数值形参给右侧变量。
算术运算符:
//算术数运算符
//加+
inti1=5;
intsum=1+2+3+i1*2;
//减-
intj1=6;
intsub=15-j1-2;
//乘*
intc=5;
intc1=5*c;
//除/
intd=28;
intd1=d/4;
//取模(取余)%
inte=12;
e=e%5;
Console.WriteLine(e);
算术运算符的优先级
乘除取余>加减
inta=1+2*3/2+1+2*3;//=11
Console.WriteLine(a);
a=1+4%2*3/2+1;//2
Console.WriteLine(a);
//括弧可以改变优先级优先估算括弧内内容
a=1+4%(2*3/2)+1;//3
Console.WriteLine(a);
//多组括弧先算最里层括弧依次往外算
a=1+(4%(2*(3/2)))+1;//2
Console.WriteLine(a);
复合运算符
+=-=*=/=%=相当于对自身进行某项算术操作以后的结果重新赋给自己
//符合运算符
inti3=1;
i3=i3+2;
Console.WriteLine(i3);
i3=1;
i3+=2;//i3=i3+2;
Console.WriteLine(i3);
i3=2;
i3+=2;//4
i3-=2;//2
i3/=2;//1
i3*=2;//2
i3%=2;//0
Console.WriteLine(i3);
inti4=10;
//i4+=4
i4+=20*2/10;
Console.WriteLine(i4);
//注意:复合运算符只能进行一种运算不能混和运算
//i4*/-=2;
自增/减运算符
注意理解后置还是前置的运算符,区别先用后自增/减还是先自增/减再使用。
可以理解为电击小子打怪物,小光先化身成电击小子打怪兽还是打完怪兽再化身。
//自增运算符
//自增运算符让自己+1
a2=1;
a2++;//先用再加
Console.WriteLine(a2);
++a2;//先加再用
Console.WriteLine(a2);
a2=1;
Console.WriteLine(a2++);//1
//2
Console.WriteLine(++a2);//3
//自减运算符让自己-1
a2=1;
a2--;//先用再减
--a2;//先减再用
a2=1;
Console.WriteLine(a2--);//1
//0
Console.WriteLine(--a2);//-1
//思索?这个
inta=10,b=20;
//11+20
intnumber1=++a+b;
Console.WriteLine(number1);//31
a=10;
b=20;
//10+20
intnumber2=a+b++;
Console.WriteLine(number2);//30
a=10;
b=20;
//10+21+11
intnumber3=a+++++b+a++;
Console.WriteLine(number3);//42
Console.WriteLine(a);//12
字符串的拼接
使用+拼接
stringstr="123";
//用+号进行字符串拼接
str=str+"456";
Console.WriteLine(str);
str=str+1;
Console.WriteLine(str);
//使用+=
str="123";
str+="1"+4+true;
Console.WriteLine(str);
//注意:只要碰到字符串,就是转为字符串
stringstr="畅知";
str+=1+2+3+4;
Console.WriteLine(str);//畅知10
str="";
str+=""+1+2+3+4;//开头就变为字符串
Console.WriteLine(str);//1234
str="";
str+=1+2+""+(3+4);//先算括弧,从首到尾估算
Console.WriteLine(str);//37
str="123";
str=str+(1+2+3);
Console.WriteLine(str);//1236
使用占位符替换方法拼接(占位符从0开始,用{}括上去)
stringstr2=string.Format("我是{0},我去年{1}岁,爱好:{2}","畅知",21,"我爱写博客!!");
Console.WriteLine(str2);
str2=string.Format("asdf{0},{1},sdfasdf{2}",1,true,false);
Console.WriteLine(str2);
条件运算符
条件运算符均为双目运算符,返回结果为bool类型的,使用其运算结果来做个别情况的判别。
条件运算符的优先级要高于算术运算符
//条件运算符
inta=5;
intb=10;
//小于
boolresult=a>b;
Console.WriteLine(result);
//大于
result=a
Console.WriteLine(result);
//小于等于
result=a>=b;
Console.WriteLine(result);
//大于等于
result=a5;
//优先级
//先估算再比较
result=a+3>a-2+3;//true
result=3+3<5-1;//false
//不同类型之间的比较
//不同数值类型之间可以随便进行条件运算符比较
inti=5;
floatf=1.2f;
doubled=12.4;
shorts=2;
byteby=20;
uintui=666;
//只要是数值就才能进行条件运算符比较比较小于大于等于等等
inti=5;
floatf=1.2f;
doubled=12.4;
shorts=2;
byteby=20;
uintui=666;
boolresult;
//只要是数值就才能进行条件运算符比较比较小于大于等于等等
result=i>f;//true
Console.WriteLine(result);
result=f Console.WriteLine(result); result=i>by;//false Console.WriteLine(result); result=f>ui;//false Console.WriteLine(result); result=ui>d;//true Console.WriteLine(result); //特殊类型charstringbool只能同类型进行==和!=比较 stringstr="123"; charc='A'; boolbo=true; result=str=="234";//false result=str=="123";//true result=str!="123";//false result=c=='B';//false //除了可以和自己类型进行==!=还可以和数值类型进行比较 //字符参与比较大小时侯将自身作为ASCII码比较 //还可以和字符类型进行大小比较 result=c>123; result=c>'B'; result=bo==true;//true; 逻辑运算符 逻辑与&逻辑或||逻辑非! 逻辑运算符优先级<条件运算符算术运算 条件运算符均为双目运算符,返回结果为bool类型的js中运算符的优先级,使用其运算结果来做个别情况的判别。 条件运算符的优先级要高于算术运算符 //条件运算符 inta=5; intb=10; //小于 boolresult=a>b; Console.WriteLine(result); //大于 result=a
Console.WriteLine(result); //小于等于 result=a>=b; Console.WriteLine(result); //大于等于 result=a5; //优先级 //先估算再比较 result=a+3>a-2+3;//true result=3+3<5-1;//false //不同类型之间的比较 //不同数值类型之间可以随便进行条件运算符比较 inti=5; floatf=1.2f; doubled=12.4; shorts=2; byteby=20; uintui=666; //只要是数值就才能进行条件运算符比较比较小于大于等于等等 inti=5; floatf=1.2f; doubled=12.4; shorts=2; byteby=20; uintui=666; boolresult; //只要是数值就才能进行条件运算符比较比较小于大于等于等等 result=i>f;//true Console.WriteLine(result); result=f Console.WriteLine(result); result=i>by;//false Console.WriteLine(result); result=f>ui;//false Console.WriteLine(result); result=ui>d;//true Console.WriteLine(result); //特殊类型charstringbool只能同类型进行==和!=比较 stringstr="123"; charc='A'; boolbo=true; result=str=="234";//false result=str=="123";//true result=str!="123";//false result=c=='B';//false //除了可以和自己类型进行==!=还可以和数值类型进行比较 //字符参与比较大小时侯将自身作为ASCII码比较 //还可以和字符类型进行大小比较 result=c>123; result=c>'B'; result=bo==true;//true; 逻辑运算符 逻辑与&逻辑或||逻辑非! 逻辑运算符优先级<条件运算符算术运算 逻辑运算符中:!(逻辑非)优先级最高&&(逻辑与)优先级低于||(逻辑或) //逻辑运算符 //逻辑与&&而且 //规则:对两个bool值进行逻辑运算有假则假同真为真 boolresult=true&&false; Console.WriteLine(result); result=true&&true; Console.WriteLine(result); result=false&&true; Console.WriteLine(result); //bool相关的类型bool变量条件运算符 //逻辑运算符优先级高于条件运算符算术运算 //true&&true result=3>1&&1<2; Console.WriteLine(result); inti=3; //1
//true&&true result=i>1&&i<5; Console.WriteLine(result); //多个逻辑与组合运用 inti2=5; //true&&false&&true&&true //在没有括弧的情况下从左到右依次看即可 //有括弧先看括弧内 result=i2>1&&i2<5&&i>1&&i<5; Console.WriteLine(result); //符号||或则 //规则对两个bool值进行逻辑运算有真则真同假为假 result=true||false; Console.WriteLine(result); result=true||true; Console.WriteLine(result); result=false||true; Console.WriteLine(result); result=false||false; Console.WriteLine(result); //false||true result=3>10||3<5; Console.WriteLine(result);//true inta=5; intb=11; //true||true||false result=a>1||b<20||a>5; Console.WriteLine(result); //?可以是写死的bool变量或则bool值 //还可以是条件运算符相关 //----------逻辑非! //符号! //规则对一个bool值进行取反真变假假变真 result=!true; Console.WriteLine(result); result=!false; Console.WriteLine(result); result=!!true; Console.WriteLine(result); //逻辑非的优先级较高 result=!(3>2); Console.WriteLine(result); a=5; result=!(a>5); Console.WriteLine(result); //混和使用逻辑运算符的优先级问题 //规则!(逻辑非)优先级最高&&(逻辑与)优先级低于||(逻辑或) //逻辑运算符优先级高于算数运算符条件运算符(逻辑非除外) boolgameOver=false; inthp=100; boolisDead=false; boolisMustOver=true; //false||false&&true||true; //false||false||true; result=gameOver||hp<0&&!isDead||isMustOver; Console.WriteLine(result); 逻辑运算符的漏电原则(聪明的运算符) //漏电原则 //||判定原则为有真则真所以第一个条件判定为真,则直接可以得出运算结果为真便不会检测第二个 //个运算条件的真伪 //同理,&&若右侧条件为假,则不会判定一侧条件,直接可以得出运算结果为假 //逻辑或有真则真那一侧只要为真了左边就不重要 inti3=1; boolresult=i3>0||++i3>=1; Console.WriteLine(i3);//1 Console.WriteLine(result); //false&&i3++>1;抛弃前面不去估算 //逻辑与有假则假那一侧只要为假了左边就不重要 result=i3<0&&i3++>1; Console.WriteLine(i3);//1 Console.WriteLine(result); //思索? //求复印结果是哪些? //注意运算符的优先级 boolgameOver; boolisWin; inthealth=100; gameOver=true; isWin=false; //true||false&&true Console.Write(gameOver||isWin&&health>0); 位运算符 位运算是基于二补码编码的运算js中运算符的优先级,首先将值转换为二补码数值,之后对于位进行操作运算。 运算符:位与&位或|异或^位或|位取反!左移> //位运算符 //位与&有0则0全1才1 //对位运算有0则0 inta=1;//001 intb=5;//101 //001 //&101 //001=1 intc=a&b; Console.WriteLine(c); //多个数值进行位运算没有括弧时从左到右依次估算 a=1;//001 b=5;//101 c=19;//10011 //00001 //&00101 //00001 //&10011 //00001 intd=a&b&c; Console.WriteLine(d); //位或|有1则1,全0则0 a=1;//001 b=3;//011 c=a|b; //001 //|011 //011 Console.WriteLine(c); a=5;//101 b=10;//1010 c=20;//10100 //00101 //|01010 //01111 //|10100 //11111=>1+2+4+8+16=31 Console.WriteLine(a|b|c); //异或^======= //不同为1相同为0 //对位运算相同为0不同为1 a=1;//001 b=5;//101 //001 //^101 //100 c=a^b; Console.WriteLine(c); a=10;//1010 b=11;//1011 c=4;//100 //1010 //^1011 //0001 //^0100 //0101=5 Console.WriteLine(a^b^c); //位取反~取反 //对位运算0变11变0 a=5; //00000000000000000000000000000101 //11111111111111111111111111111010 //原码进制知识 //计算机中的二补码是以进制方式储存的 //进制:负数的反码是本身正数的进制是绝对值取反加一 c=~a; Console.WriteLine(c); //左移右移 //规则让一个数的2补码数进行左移和右移 //左移几位左侧加几个0 a=5;//101 c=a>2; //1位10 //2位1 Console.WriteLine(c); //练习---- //99^33和76|85的结果为? //1100011^100001 //1100011 //^0100001 //1000010 Console.WriteLine(99^33); //1001100|1010101 //1001100 //|1010101 //1011101=>64+29=93 Console.WriteLine(76|85); 三目运算符 条件?A:B条件为真则走A逻辑否则走B //三目运算符 inta=5; str=a<1?"a小于1":"a不满条件"; Console.WriteLine(str); inti=a>1?123:234; //第一个空位仍然是结果为bool类型的表达式bool变量条件表达式逻辑运算符表达式 //第二三个空位哪些表达式都可以只要保证她们的结果类型是一致的 boolb=a>1?a>6:!false; ======