本当に素晴らしい出来栄えです!!! - ページ 2

 

ドキュメントを参照する優先順位と操作の 順序。

表中の各操作グループの優先順位は同じです。ある操作群の優先順位が高いほど、その操作群は上位に配置される。実行順序は、演算とオペランドのグループ化を決定する。

() 左から右への関数呼び出し
[] 配列要素選択
!      論理的否定 右から左へ
- サイン変更
++ 1つ増やす(インクリメント)
--1つ減らす(デクリメント)
~ ビット単位の否定(補数)
ビット単位のAND演算 左から右へ
| ビットワイズOR
ビット毎OR
<< 左シフト
>> 右方向にシフト
* 乗算 左から右へ
/ ディバイド
モデューロ除算
+ 左から右への足し算
- 引き算
<= 左から右へより少ない
<= 以下であること
>= より大きい
>= 大なり小なり
== イコール
!= 非等価
|| OR 論理演算 左から右へ
&& 論理演算 AND 左から右へ
== Assignment 右から左へ
+= 加算・代入
= 割り算による引き算
*= Assignmentとの乗算
/= 割り当てを伴う除算
%= 代入によるモジュロ除算
>>= 代入による右シフト
<<= 代入による左シフト
&= 割り当てられたビット単位のAND
|= ビット単位のORと代入
^= 割り当てを伴うORの除外
カンマ 左から右へ

括弧は操作の実行順序を変更するために使用され、最も高い優先度を持つ。


注意: MQL4では、操作の優先順位がC言語と若干異なります。


そうなんですね


 


確認するのが面倒な場合は、実行からCでコンパイルしてください。


コンパイラは100%GLUCKです。

 

ああ、空よ!

と、不具合はCにある、と思っていたのですが...。地球上の危機の理由。

 

生きて、学ぶのです。私はこれまで、まずANDを実行し、次にORを実行するものと考えてきました。そして、この理解によって、すべてのプログラムがうまく機能するようになったのです。非常に複雑なロジックの組み合わせでも

しかし、ここでは...

いや、掲示板を読まない方がいい。すべてを混同してしまうのです。

プログラムは問題なく動きましたが...。今度こそ不具合が出るかもしれない:))))))))

 
ロッシュ わーそうなんですかー。数学とか他の言語ではそんなことないのに、MQL4では本当なのか?それなら、開発者の頭の中の不具合ですね :)すみません...
 
rid >> :

そんなことないですよここでは「または」(||) が優先されます - 明確に !

括弧がない場合は、まず || が実行され、次に && が実行されます。

そのため、ブラケットを適切な場所に配置する必要があります。


しかし...

   bool a = false, 
      b = true, 
      c = false;
   
   bool res = a || b && c;
   Print( res);               // 1 !
すず
 
...とこちら...括弧を付けて、括弧を付けて、括弧を付けるだけです。問題ありません。そして、プログラムがより分かりやすくなる。誰もMQL4=C++/と約束したことはありません。
 
規格があり、それを守らなければならない。そして、もし開発者が一般的に受け入れられている規格と矛盾する独自の規格を作ったとしたら...。の汚れは...ゴミ
 

matcadで最初の投稿を確認しました。答えは、「1 0 1 1」です。

以下はそのコードです。

 

正直なところ、論理演算とビット演算の優先順位を暗記したことはない。生来の怠け者のため、適当なところに括弧をつけただけです。

"たくさんあるぞ、友よホラス..."