您當前的位置:首頁 > 收藏

MQL5從入門到精通【第三章】運算子

作者:由 程式設計師小助手 發表于 收藏時間:2022-09-09

文件日期:2019年12月6日

透過運算子,可以提供數學運算,對變數賦值。

# 加法 乘法

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!’);

}

以上。

標簽: int  double  print  取模  成立