通过操作符,可以提供数学运算,对变量赋值。
int a = 3 + 5; // a=8
double b = 2.5 + a; // b=10.5
int ma = 5 * 3; // ma = 15
double mb = 2.5 * ma; // mb=37.5
需要特别留意的是上方加法中,整型和double型相加,结果为double型。乘法的方式也是一样的。这个就是隐式数据转换。
int a = 5 - 3; // a= 2
double b = 0.5 - a;// b = -1.5
int na = -5;
double nb = 3.3 - na; // nb = 8.3
与我们常识的四则运算相同规则。留意数据类型转换,从低精度转为高精度。还有数据范围,默认是有符号数,可正可负。第二章我们详细介绍过了。
说一下取模。其实就是求整数A除以整数B的余数,就叫取模。当然还有商,可以直接对结果取整求得。这里只讲一下取模。
double a = 5 / 2; // =2.5
int b = 5 / 2; // = 2.这个就是求商,取整即可。
int m = 5 % 2; // = 1 这个就是取模,两数相除的余数
很多时候,我们需要把计算表达式的结果,保存并传递给其他函数/变量使用。
int a = 5;
a = a + 3;
Print(a); // = 8
声明了饿一个变量并对其自加,并赋值给自身。也可以使用如下表达式,是等价的:
int a = 5;
a += 3;
依次类推,还可以自乘,自除,自减等等:
a -= 3; // a = a-3
a *= 3; // a = a*3
a /= 3; // a = a/3
a %= 3; // a = a%3
逻辑中常用的判断项,大于,小于,等于等等。
a > b // 大于
a < b // 小于
a >= b // 大于等于
a <= b // 小于等于
a == b // 等于
a != b // 不等于
对于新手程序员,唯一需要注意的,就是一个=,是赋值;两个==等号,是逻辑判断,一定要记清楚了哦。否则编译器抛出异常的时候,又得令人懊恼。
当使用实数进行逻辑判断时,将比较的数据进行标准化,小数点位精度统一化很关键。我们使用NorminalizeDouble函数对double数据进行小数点位数格式化。
double a = 1.3456789;
double b = 1.3456798;
a = NorminalizeDouble(a,4);// 保留4位小数
b = NorminalizeDouble(b,4); // 同上
if(a == b){
Print("a is equal to b.");
}
格式化为同一精度的实数再进行比较,就好了。
布尔运算,其实简单的就三个操作元,与 &&,或 ||,非 !。程序里用的最多的也就是这三个。
与,A成立且B成立,C才成立;A && B = C
或,A成立或B成立,C才成立;A || B = C
非,A不成立,C才成立;!A = C
下面看一些例子:
int a = 1;
int b = 1;
int c = 3;
if(a ==b || a+b == c){ // a等于b = true, a+b ==c,=false。与运算,只要一个成立即可。
Print('Yes');
}
看看非运算:
bool n = false;
if(!n){ // n不为真,成立。
Print("yes");
}
综合的非运算:
int a = 1;
int b = 2;
if(!(a == b)){ // a==b不成立,则通过
Print("yes, a is not equal tp b!');
}
上面的表达式其实等价于:
if(a != b){
Print("yes, a is not equal tp b!');
}
以上。