« How to C | トップページ | How To C if() のはなし »

2019年4月 7日 (日)

"=="ってなんだ

前回の続き How to C です。

Howtoc
この "=="とイコールが2つならんだのは、前回の "="の代入ではなく
等しい
とう、まさに イコールを表すものです。
なんで "="を2つつけるかと言えば、「もう "="は使っちゃたので」区別のため "=="」なのです。
その辺が Visual Basic との考えの違いで、そちらは「使う場所や、場合が違うので、いいんじゃない}
とおおらかなのか、いい加減なのか マイクロソフトです。
だいたい Visual BAsic は A という変数に 文字で "100" と入れたあと、
A x 10 =
とやると 数値で 1000 と勝手に数値に変換して計算くれる
ある意味柔軟な言語です。
と、話は戻りまして、"=="はどう使われるかというと、条件分岐などで使うのですが、例えば
もし A が 10 だったら、5足して
などというプログラムを
if( A == 10 ) {
    A = A + 5 ;
}
と言う風に書きます。
if(  xxxx ) は、文字どおり 「もし xxxx だったら」という機能でこの ( xxxx ) の中の条件が合った場合、次の { ..... } に囲まれた部分が実行されるのです。
ですから、 Visual Basic みたいに
if( A = 10 ){
   A = A +5 ;
}
と "="を1つしか書かないと、Aに10 を入れる作業を行った後,この式は A = 10 という正しい事を行っているので、そのままエラーにならずに次の
 A= A+5 を常に実行してしまうことになります。
デバッグしていても、エラーにならずに、「よし A= A+5 やってるな」って具合で見過ごすことも多いです。
この条件式 "=="は仲間がいて、大変判りやすいのが

if( A > 10 )  ...... 10より大きい
if( A < 10 )   ..... 10より小さい
は、数学で使うので知ってますね? そして
if( A >= 10 ) .... 10以上(10の時も含む)
if( A <= 10 ) ....  10以下(10の時も含む)
も判るかと思います。ここで、注意なのが
if( A => 10 )
if( A =< 10 ) は、エラーになることです。"="は後づけなのですね。
この仲間に
if(  A != 10 ) .... Aが 10でない場合
があります。不等号で "<>" ってやりたくなりますが、 "!" ノットをつけて
ノットイコール "!=" と書きます。
今回は "=="から、条件分離に使う if ( xxxx ) の事をちょっと入りましたので、次回は この
if( xxxx ) をもうちょっと詳しくやってみます。
この if( xxxx ) が出来て、計算式が出来れば 大抵の計算プログラムは出来ます。
意外と簡単ですが、組み込みCPUプログラムでは、スイッチの入力や表示まで自分で作らないとならないのでそっちの方が大変ですが、最初は多くの機能を使わないでプログラムを書くのが大事ですね。ミスも少ないし...

|

« How to C | トップページ | How To C if() のはなし »

ソフト」カテゴリの記事

コメント

if( A = 10 ){
}
つい書いてしまいますよね。
コンパイルが通ってしまうので、バグも見つけにくいです。
これを避けるために、(本で読んだ請け売りですが)以下の様に書く癖をつけています。
if( 10 == A ){
}
うっかり、if( 10 = A )と書くと、コンパイルエラーになるのです。
ただ、慣れないと何となく判りにくいです。
例えば、if (10 == func())は、「func関数を呼んだ結果が10ですか?」と読む必要が
あるんですが、結果を先に書くのは気持ちよくはないですよね。

と、いうことで、こういう書き方を嫌う人もいるから、万人向きではないですが、
仕事で間違いを少しでも減らす必要があるなら、考慮して良いのではないでしょうか。
あと、intでなくfloatで宣言している場合など、if( 10 == A )がバグになることもあり
ちょっとドキドキします。

投稿: Pal8000 | 2019年4月 9日 (火) 15時18分

なるほど
逆に書いておくのですね
でも、年取った私はとても戻れそうにもありません。 ==を使うときだけこう書くってのはアリかもしてませんね。

投稿: sudoteck | 2019年4月 9日 (火) 17時32分

コメントを書く



(ウェブ上には掲載しません)




« How to C | トップページ | How To C if() のはなし »