この間の授業の時に先生が言っていたのですが、do whileを使う事はないよ。
初心者向けのC言語の本には絶対と言って良いほど書いてあるけれど。
使う事はないんだよねw
と言うより、使うな!
車用のコンパイラで使ったのをコンパイルしようとするとエラー吐かれるよと。
理由略
って事で、そこで疑問に思った事が。
じゃあ何で存在するの?
まあ、ざっと考えたところだとdo whileを使わないでも普通にその役割は実現できるし。
それどころか使っていると膨大な行数になったときに改変する際に色々と重大なバグを発生させかねない事も理解できた。
だったら逆に何故そんな無駄な物が存在しているのだろうかと。
フと思ってしまったり。
あれ、存在理由が・・・
Re: あれ、存在理由が・・・
え…使っちゃだめだったんですか?
あれがないと作るの面倒なものとか結構あるのに…
例えば入力処理とか…
なくてもできるけどあったほうがいい。
do{
printf("100より小さい整数を入力:");
scanf("%d",&a);
while(0<=a && a<100);
とかが
先にaの値を確認しないといけなくなりますし…
私は好きですね。
あれがないと作るの面倒なものとか結構あるのに…
例えば入力処理とか…
なくてもできるけどあったほうがいい。
do{
printf("100より小さい整数を入力:");
scanf("%d",&a);
while(0<=a && a<100);
とかが
先にaの値を確認しないといけなくなりますし…
私は好きですね。
Re: あれ、存在理由が・・・
Cだとマクロの中でも使いますよ。
#define HogeHoge() \
do{ \
...; \
...; \
} while(0)
みたいな。
do-whileを使わないというのは多分その先生の流儀じゃないですかね。
#define HogeHoge() \
do{ \
...; \
...; \
} while(0)
みたいな。
do-whileを使わないというのは多分その先生の流儀じゃないですかね。
Re: あれ、存在理由が・・・
取りあえず、コメントがイッパイで驚きと。
mixiとは違ってこのSNSに登録して良かったなと。
>>パコネコさん
ゲームとかでは良いのかもしれないのですが、組込み分野では人の命に関わる事があるとか何だとかで。
駄目らしいのです。
一応、便利だから存在はしているのかな?
とも思えました。
>>ナムアニクラウドさん
綺麗さよりも、安全性を求めないとと言う事もありますので。
そういった面での事なので、今回は見やすさや簡単さは安全性の次ぎと言う事のようです。
>>御津凪さん
そうなんですよね。
コンパイラよりけりなんですよね。
車関係のだと、他にもインデントが可笑しいだけでもエラー吐くのもあるそうで。
色々と組込み系は制限があるようですね。
>>Justyさん
これに関しては、使う使わないではなくて。
使って良いか駄目かと言う事らしく。
組込み系では、人の命に関わりかねないと言う事もあって、先生の流儀ではなく企業でも使わないとの事です。
------------------------------------
先生いわく、君達の今書いている程度の短いコードならば使っても支障はなく逆に簡単だけれども。
今後の授業や企業では間に数百行(うろ覚え)と入る事もあり、そうなった場合でのバグが考えられ。
そのバグが人名に関わる巨大なバグになりかねないから使用はされないと。
それどころか、コンパイラに弾かれると思うよ。
との事。
結局は、組込み系の学科だからなのかなと。
普通に使えたらやはり便利ですもんね。
皆さんコメント有難うございました。
mixiとは違ってこのSNSに登録して良かったなと。
>>パコネコさん
ゲームとかでは良いのかもしれないのですが、組込み分野では人の命に関わる事があるとか何だとかで。
駄目らしいのです。
一応、便利だから存在はしているのかな?
とも思えました。
>>ナムアニクラウドさん
綺麗さよりも、安全性を求めないとと言う事もありますので。
そういった面での事なので、今回は見やすさや簡単さは安全性の次ぎと言う事のようです。
>>御津凪さん
そうなんですよね。
コンパイラよりけりなんですよね。
車関係のだと、他にもインデントが可笑しいだけでもエラー吐くのもあるそうで。
色々と組込み系は制限があるようですね。
>>Justyさん
これに関しては、使う使わないではなくて。
使って良いか駄目かと言う事らしく。
組込み系では、人の命に関わりかねないと言う事もあって、先生の流儀ではなく企業でも使わないとの事です。
------------------------------------
先生いわく、君達の今書いている程度の短いコードならば使っても支障はなく逆に簡単だけれども。
今後の授業や企業では間に数百行(うろ覚え)と入る事もあり、そうなった場合でのバグが考えられ。
そのバグが人名に関わる巨大なバグになりかねないから使用はされないと。
それどころか、コンパイラに弾かれると思うよ。
との事。
結局は、組込み系の学科だからなのかなと。
普通に使えたらやはり便利ですもんね。
皆さんコメント有難うございました。