(3)运算符、优先级、if else

++:分为前加加和后加加
前加加和后加加的区别:
相同点:不管是前加加还是后加加,结果就是变量的值都加了1。
不同点:如果是前加加,那么首先给这个变量的值自身加1,然后再参与运算。如果是后加加,那么首先拿原值参与运算,运算完成后自身加1。
int a=3;   int b= ++a -2;   结果是a=4,b=2
int b= ++a -2;   相当于   a=a+1;   int b=a-2;
int a=3;   int b= a++ -2;   结果是a=4,b=1
int b= a++ -2;   相当于   int b=a-2;   a=a+1;


--:分为前减减和后减减
前减减和后减减的区别:
相同点:不管是前减减还是后减减,结果就是变量的值都减了1。
不同点:如果是前减减,那么首先给这个变量的值自身减1,然后再参与运算。如果是后减减,那么首先拿原值参与运算,运算完成后自身减1。
int a=3;   int b= --a +2;   结果是a=2,b=4
int b= --a +2;   相当于   a=a-1;   int b=a+2;
int a=3;   int b= a-- +2;   结果是a=2,b=5
int b= a-- +2;   相当于   int b=a+2;   a=a-1;


int a=3;
int b=(a++)+(++a)*2+(a++)+(++a);
25 = 3 + 5 * 2 + 5 + 7


在一个表达式中,如果既有一元运算符也有二元运算符,首先计算一元运算符,然后再计算二元运算符,因为一元运算符的优先级要高于二元运算符。
一元运算符:指的就是只需要一个操作数就能完成的运算,++和--。
二元运算符:指的就是至少需要两个操作数才能完成的运算,+、-、*、/、%。


复合赋值运算符:
int number=10;
+=:number+=10也就是number=number+10
-+:number-=10也就是number=number-10
*=:number*=10也就是number=number*10
/=:number/=10也就是number=number/10
%=:number%=10也就是number=number%10


在计算机中,我们用bool类型来表示一句话的对错,一个条件的成立不成立。
bool类型只有两个值,true和false。


关系运算符:>、<、>=、<=、==、!=,用来比较两个事物之间的关系。
由关系运算符连接的表达式叫做关系表达式。
关系表达式运算的结果都是bool类型。


逻辑运算符:
&&:逻辑与
||:逻辑或
!:逻辑非
由逻辑运算符连接的表达式叫做逻辑表达式。
我们要求逻辑表达式的两边都要放关系表达式或者bool类型的值,整个逻辑表达式的结果也是bool类型。
逻辑表达式两边值对结果的影响:
表达式1    表达式2    表达式1&&表达式2
true         true           true
true         false          false
false        true           false
false        false          false
表达式1    表达式2    表达式1||表达式2
true         true           true
true         false          true
false        true           true
false        false          false
表达式    !表达式
true       false
false      true


逻辑与的短路
int a=10; 
int b=5; 
bool result=  ++a>50 && ++b>1;
这时候如果输出结果a=11,b=5,按照正常应该是b=6,但是逻辑与中前面的关系表达式的结果为false,在逻辑与中只要有一个是错的整个就是错的,后面的关系表达式不需要运算就可以得出结果,整个逻辑表达式是错的,所以计算机就没有计算后面的关系表达式。在逻辑与中只有第一个关系表达式成立,计算机才会运算第二个关系表达式。


逻辑或的短路
int a=10; 
int b=5; 
bool result=  ++a>5|| ++b>1;
这时候如果输出结果a=11,b=5,按照正常应该是b=6,但是逻辑或中前面的关系表达式的结果为true,在逻辑或中只要有一个是对的整个就是对的,后面的关系表达式不需要运算就可以得出结果,整个逻辑表达式是对的,所以计算机就没有计算后面的关系表达式。在逻辑或中只有第一个关系表达式不成立,计算机才会运算第二个关系表达式。 


&、|和&&、||的区别:
&&、||在有些时候只计算一边表达式就可以得出整个表达式的结果,这时候另一边的表达式就会忽略不计算。
表达式1&&表达式2:如果表达式1为false,则第二个表达式就不再计算。
表达式1||表达式2:如果表达式1为true,则第二个表达式就不再计算。
表达式1&表达式2:两个表达式都计算出结果。
表达式1|表达式2:两个表达式都计算出结果。


运算优先级(由上到下级别最高到最低)
最高:i++、i--
一元:+(正号)、-(负号)、!、++i、--i
乘除:*、/、%
加减:+、-
关系:<、>、<=、>=
相等:==、!=
逻辑与:&&
逻辑或:||
三元: ? :
赋值:=、+=、-=、*=、/=、%=、!=


三元运算符(C#中唯一的一个三元运算符)
表达式1?表达式2:表达式3
执行过程:首先计算表达式1,表达式1应该是一个能够计算成bool类型的值,如果表达式1的值为true,则表达式2的值作为整个表达式的值,如果表达式1的值为false,则表达式3的值作为整个表达式的值。
注意:表达式2和表达式3必须是同一数据类型。


程序中有三种结构:顺序结构、分支结构、循环结构。
顺序结构:从上到下一行一行的执行,代码不会发生跳跃。


if结构语法
if(关系表达式或者bool类型的值)
{
    代码;
}
执行过程:程序运行到if处,首先判断if后面小括号中的条件,如果条件成立则执行if所带的大括号中的代码,如果条件不成立则跳出if结构。
特点:不符合条件不会执行代码。
如果不加大括号的话,if后面只能带一句话,if下面的第二句话就与if没有关系了,如果要让if带多句话就需要把代码写在if后面的大括号里面。else也是如此。


if-else结构语法
if(关系表达式或者bool类型的值)
{
    代码;
}
else
{
    代码;
}
执行过程:程序运行到if处,首先判断if后面小括号中的条件是否成立,如果条件成立则执行if所带的大括号中的代码,执行完成后跳出if-else结构,如果条件不成立则执行else所带大括号中的代码,执行完成后跳出if-else结构。
特点:至少会执行一个大括号里的代码。


if和if-else的区别:
if用来判断单一的条件,而if-else用来判断两种条件。


if else-if的语法:
if(关系表达式或者bool类型的值)
{
    代码;
}
else if(关系表达式或者bool类型的值)
{
    代码;
}
else if(关系表达式或者bool类型的值)
{
    代码;
}
else
{
    代码;
}
执行过程:程序首先判断第一个if后面小括号中表达式的值,如果为true的话,则执行该if所带的大括号中代码,执行完成后跳出if else-if结构,如果该if中的表达式的值为false,则继续向下判断else if中的表达式,只要成立的话就执行该else if所带的大括号中代码,执行完成后跳出if else-if结构,如果所有else if后面小括号的表达式都为false,则看if else-if结构中有没有else,如果有else则执行else所带大括号中的代码,如果没有else则跳出整个if else-if结构。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值