• ベストアンサー

if else文

どう解読すればいいか解りません。 解りやすく解読して下さい。 if (year % 2 == 0) { if (year % 4 == 0) { return OLYMIPC_SUMMER; } else { return OLYMIPC_WINTER; } } else { return OLYMIPC_NON; } OLYMIPC_SUMMERは、year % 2 == 0 year % 4 == 0 両方の条件が必要な文型になってますか? 他は、OLYMIPC_WINTER。 他は、OLYMIPC_NON。 となっていて、さっぱり解りません。 解りやすく教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • driverII
  • ベストアンサー率27% (248/913)
回答No.1

年が2で割り切れるなら A 割り切れなければオリンピック無し で、Aが 年が4で割り切れるなら 夏季オリンピック 割り切れないなら 冬季オリンピック ですね。 >OLYMIPC_SUMMERは、year % 2 == 0 year % 4 == 0 両方の条件が必要な その通りです。

startover
質問者

お礼

すばやい回答ありがとうございました。 すごく解りました! ありがとうございました。

その他の回答 (1)

  • ann_dv
  • ベストアンサー率43% (528/1223)
回答No.2

if (year % 4 == 0) { return OLYMIPC_SUMMER; } else { return OLYMIPC_WINTER; } 上記が一番目のif文の中に入っている条件式です。 yearが2で割り切れる場合は上記の条件式に行くので、 yearが2で割り切れて、かつ4で割り切れる場合 OLYMIPC_SUMMER yearが2で割り切れて、4では割り切れない場合 OLYMIPC_WINTER yearが2で割り切れない場合 OLYMIPC_NON となります。

startover
質問者

お礼

どうもありがとうござました。 すっきり、理解できました! ありがとうございました。

関連するQ&A

  • if、else ifの使い方について

    当方プログラミング初心者のため、拙い文章になってしまう可能性があることをご了承ください */関数ここから/* int nisu( int year,int tuki ){ int nissu; if(tuki == 2){ nissu=feb(year); } else if(tuki == 4 && tuki == 6 && tuki == 9 && tuki == 11){ nissu=30; } else{ nissu=31; } return(nissu); } */関数ここまで/* 以上の関数を作成し、別の関数内において m_nisu=nisu(year,tuki); printf("%d\n",m_nisu); を実行すると、tukiが2のときは思ったとおりの値が表示される(よって、関数feb(year)の説明は省略します)のですが、それ以外の値を指定した時には、必ず31が表示されてしまいます。 また、 tuki == 4 && tuki == 6 && tuki == 9 && tuki == 11 の部分を、 tuki == (4)||(6)||(9)||(11) に書き換えると、何故か必ず30が表示されてしまいます。 まったく理由が思いつかないので、よろしければご教授願います。 他に必要な情報がございましたら遠慮なくおっしゃって下さい。

  • if~else文の中にまたif~else文をいれるには。

     このプログラムを思うように実行したいのですが、できません。 コンパイルはできるのですが、警告が4つほど出て、結果も自分が思ってるのとは違います。 プログラムのどこを改善すべきか教えてください。 OSはWindows XPで、コンパイラはボーランドのフリーコンパイラを使用しています。 #include<stdio.h> int main(){ int a,b,c,d; printf("1か0を入力してください。\n"); scanf("%d",&a); if(a=0) { printf("2か3を入力してください。\n"); scanf("%d",&b); if(b=2){ printf("今まで合計は%dです。\n",a+b); } if(b=3){ printf("今まで合計は%dです。\n",a+b); } else { printf("指定した数字を入力して下さい。\n"); } } else if(a=1) { printf("あなたは%dを入力しました。\n",a); } else { printf("指定した数字を入力してください。\n"); } return 0; }

  • if else文のフローチャート

    c言語です。 if else文のフローチャートを教えてほしいです。 Trueの場合は処理1、Falseの場合は処理2を実行したいです。 最初に条件と書きます。

  • パールスクリプトのif else文について

    複数の種類のif else文のスクリプト結果を まとめて表示する方法はあるのでしょうか? たとえば「2000年」に対しての データ(1)のif else文のデータ内容は「1月は猫 2月は犬・・」で データ(2)のif else文は「1月は鳥 2月は申・・」であるとすると、 2000年の1月は「猫と鳥」と両方のif else文の結果を 表示させたい場合は、スクリプト的にはどのように記述すれば よろしいでしょうか? よろしくお願い致します。

    • ベストアンサー
    • CGI
  • テストメソッド

    先ほどはありがとうございました。テストメソッドで一つ質問があります。 もしinNorthernHemisphere(北半球)ならTrue。!inNorthernHemisphere(南半球)ならFalse。その月の四季を返します。 {12月、1月、2月} 北半球→"Winter" 南半球→"Summer" {3月、4月、5月} 北→"Spring" 南→"Fall" {6月、7月、8月} 北→"Summer" 南→"Winter" {9月、10月、11月} 北→"Fall" 南→"Spring" プログラムはこのように組んでみました。 public class ControlFun { public String season(int month, boolean inNorthernHemisphere){ if (month == 12 || month ==1 || month == 2) { if (inNorthernHemisphere) { return "Winter"; } else { return "Summer"; } } else if(month == 3 || month == 4 || month == 5 ){ if (inNorthernHemisphere) { return "Spring"; } else { return "Fall"; } }else if(month == 6 || month == 7 || month == 8){ if (inNorthernHemisphere) { return "Summer"; } else { return "Winter"; } }else{ if (inNorthernHemisphere) { return "Fall"; } else { return "Spring"; } } } 問題のテストメソッドですが、 public class ControlFunTest { @Test public void testseason(){ ControlFun myFuns = new ControlFun(); assertEquals("Winter", myFuns.season(12,?)); } } boolean型のinNorthernHemisphereはどのように書けばテストできますでしょうか。? このテストでは、monthは12月。 inNorthernHemisphereはTrue。結果Winterを返したいのです。宜しくお願いします。

    • ベストアンサー
    • Java
  • 条件文でelseはつけるべき?

    if文で条件文を作るときに、どういう風に作れば最適なのか考えています。 「男」か「女」かを判断する時のif文として、データ的にどちらかしかないので、以下のようになると思います。 --------------------------- if 「男」 {   処理1 } else if 「女」 {   処理2 } --------------------------- 仕様的にもどちらかしかないのですが、こういう場合でもelseを付けた方が良いのでしょうか? --------------------------- if 「男」 {   処理1 } else if 「女」 {   処理2 } else {   エラー処理 } --------------------------- 後々の仕様変更で、判断できない場合は「不明」などが追加される可能性もあると思います。 その場合に、仕様変更に対応してないとエラー処理が動くようにしておくべきでしょうか? みなさんは、必ずelseを書いてますか?

  • if文の処理部分の括弧を省略した場合の書き方

    C言語のif文の書き方についてですが、通常 if(条件) { ---処理1------- } else if(条件) { ---処理2------- } else { ----処理3------ } 括弧を使った場合は上のような動作をすると思うのですが、括弧を使った場合、 次のif文の”処理1”部分if((TEST_SENSOR & 0x03) == 0x03)は正常に動作できますでしょうか? コメント文が1行入ってしまうとダメでしょうか? コンパイラはエラーは出しませんでした。 if((TEST_SENSOR & 0x03) == 0x03) //return TEST_ERR; return T_NONE; else if((SENSOR & 0x03) == 0x01) return T_LOCK; else if((TEST_SENSOR & 0x03) == 0x02) return T_UNLOCK; return T_ERR; どうぞ、ご教授頂きますよう、お願い致します。

  • if文の書き方

    if文の書き方 if(!$a){$b=1;}の内容で、条件を右に持ってくる書き方だと$b=1 if(!$a);だと思いますが、 if(!$a){$b=1;}else{$b=2;}の内容で、条件を右に持ってくる書き方はできないでしょうか?

    • ベストアンサー
    • Perl
  • if文の使い方について

    if文でaの値とbの値とcの値が一緒なら次の処理を行うものを作成したいのですが。 if($a==$b==$c){ 行いたい処理 }else{ その他の処理 } と書いたのですが、ダメで if($a=$b=$c){ 行いたい処理 }else{ その他の処理 } と書いたのですが、これもダメでした。 if($a==$b) {  if($b==$c)  {    処理   }else{     その他の処理   } }else{ その他の処理 } と書かいたら実行されたのですが、このように分けて書かないとダメなのですか? いいやり方がありましたら教えてください

    • ベストアンサー
    • PHP
  • if文について

    最近、C言語プログラムから、離れていて、久しぶりにここを覗いたのですが、 こんな質問を見ました。 質問 C言語初心者だが、学習用に良いサイトはないか? 最初の回答の方は、ある初心者用と思われるサイトを、紹介してらっしゃいました。 それに対して、他の回答者の方々は、そのサイトの一分を引用して、コンパイルできないし、間違っていると指摘されました。それは以下のようなものでした。 if(条件式) 文1; else 文2; その代わりに掲載されているのが次のようなものでした。 if(条件)条件が真のときに実行する1文; else 条件が偽のときに実行する1文; 私には、最初の回答がなぜ間違っているのか、何故コンパイルできないのか、判りません。何方か詳しく教えていただければ、嬉しいです。よろしくお願いします。