ベストアンサー
プログラミング言語によって、意味が異なる場合があります。
たとえばJavascriptでは?は条件(三項)演算子であり、%は算術演算子 pの剰余演算子です。 >
Oracle SQLでは?は動的パラメータのプレースホルダーであり、%は LIKE のデータの0文字以上に一致します節。
Mathematicaでは?は PatternTest に使用され、%は Out 操作の省略形として使用されます。
より具体的な答えを得るには、書いている言語についてより具体的にする必要があります。
答え
それは(もちろん)プログラミング言語によって異なります。ただし、これまでで最も一般的な使用法は、Cファミリーの言語からのものであり、同等性を比較する演算子です。 Cは割り当てに「=」を使用し、Cは割り当てをほぼどこでも実行できるため、比較にも使用できませんでした。したがって、比較を行うために2回記述しました。
整数型、およびブール型や文字などの他の単純な型の場合、多かれ少なかれ簡単です。 42 == 42は真であり、42 == 47は偽です。浮動小数点はいくつかのコーナーケースを追加します(浮動小数点常にはすべてにコーナーケースを追加するためです!)。より複雑なオブジェクトの場合、より複雑になります。たとえば、Javaでは、「==」は、オブジェクトに適用されたときに「まったく同じオブジェクト」(のように、同じメモリ位置にある)を意味し、ほとんどの比較にはequals()メソッドを使用することになっています。 equals()メソッドはデフォルトで==として実装されますが、ニーズに合わせてオーバーライドできます(いくつかの合理的な制限に従い、関連するメソッド、特にhashCode()を適宜調整することを忘れないでください)。 C ++のような言語では、誰が知っていますか? C ++では、演算子をオーバーロードできます。 (それは素晴らしいこともあれば、非常に混乱することもあります。)