ページ 11

三項演算子の使い方

Posted: 2011年10月18日(火) 14:11
by s707
次の記述を三項演算子を使って記述したいです。
よろしくお願いします。

コード:

if(i == 1){
	if( A ){ A = 0; }
}
else{
	if( B ){ B = 0; }
}
こういう書き方ではなさそうですが。

コード:

(i == 1) ? ( if( A ){ A = 0; }	) : ( if( B ){ B = 0; } )

Re: 三項演算子の使い方

Posted: 2011年10月18日(火) 14:45
by softya(ソフト屋)
そういう書き方ではないですが、三項演算子を使ってわかりやすくなるわけでもなさそうなので止めておいたほうが良いと思います。
そんなところに「goto文を使うのか」に類するたぐいの書き方だと思います。式にする意味もわかりません。ちなみに三項演算子を使うと高速になる訳でもありません。

(i == 1) ? ( (A)?A=0:0 ) : ( (B)?B=0:0 )

Re: 三項演算子の使い方

Posted: 2011年10月18日(火) 14:59
by s707
softya(ソフト屋)様、ご返信ありがとうございます。

今回も参考になりました。
確かに分かりづらいので、使わない方が無難ですね。

Re: 三項演算子の使い方

Posted: 2011年10月18日(火) 19:05
by ISLe
三項演算子ではないですが、
if( A ){ A = 0; }

A && (A = 0);
と書くこともできます。

Re: 三項演算子の使い方

Posted: 2011年10月18日(火) 22:55
by s707
ISLe様、ご返信ありがとうございます。
それなら短い記述で見た目もスッキリになりますね。
参考にさせていただきます。