サンプルソースコード
#include<iostream>
int main(){
const int score1 = 100;
const int score2 = 85;
int money1;
int money2;
std::cout << "100点を取ったらおこづかいをあげるよ" << std::endl;
std::cout << ">>1さんの点数は" << score1 << std::endl;
money1 = ( (score1==100)?500:0 );
std::cout << "したがっておこづかいは" << money1 << "円" << std::endl;
std::cout << ">>2さんの点数は" << score2 << std::endl;
money2 = (score2==100)?500:0;
std::cout << "したがっておこづかいは" << money2 << "円" << std::endl;
return 0;
}
実行結果
100点を取ったらおこづかいをあげるよ
>>1さんの点数は100
したがっておこづかいは500円
>>2さんの点数は85
したがっておこづかいは0円
if文で書き換える(実行結果は同じ)
#include<iostream>
int main(){
const int score1 = 100;
const int score2 = 85;
int money1;
int money2;
std::cout << "100点を取ったらおこづかいをあげるよ" << std::endl;
std::cout << ">>1さんの点数は" << score1 << std::endl;
if(score1 == 100){
money1 = 500;
}else{
money1 = 0;
}
std::cout << "したがっておこづかいは" << money1 << "円" << std::endl;
std::cout << ">>2さんの点数は" << score2 << std::endl;
if(score2 == 100) money2 = 500;
else money2 = 0;
std::cout << "したがっておこづかいは" << money2 << "円" << std::endl;
return 0;
}
つまり次の2つが同じ結果になるということ
money1 = (score1==100)?500:0;
if(score1 == 100){
money1 = 500;
}else{
money1 = 0;
}
条件演算子の良しあし(ぱっと見で判断)
メリット
・行数を減らした分だけデバッグのときに見直すのが楽になるかも
・if文だと同じ変数名を2回書いているけど、条件演算子なら1回のみ
デメリット
・学校で習わない場合があるので人によっては混乱するかも
他にも書き足すかも
PR