忍者ブログ
  • 2024.08
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 2024.10
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

【2024/09/19 11:48 】 |
条件演算子
C++の条件演算子の使い方
(条件式)?A:B
条件式の計算結果ががtrueならA、falseならBになる
サンプルソースコード

#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
【2013/02/14 00:15 】 | C++習得 | 有り難いご意見(0)
<<インライン関数 | ホーム | C++で作るプログラムについて>>
有り難いご意見
貴重なご意見の投稿














<<前ページ | ホーム | 次ページ>>