C言語 else if 多方向分岐させる






スポンサードリンク

先日は 【 if 】 条件にあった場合は実行 【 else 】それ以外なら実行を勉強してみました。今回はさらに実行条件を増やす【 else if 】を使って勉強してみたいと思います。

サンプル。配列に代入された文字列終端マークで判定させています。もしなにも入力されない場合は 変数【 ss0 】には0が文字列終端マークとして代入されるので【 if 】を実行 一文字代入された場合は変数【 ss1 】に0が文字終端マークとして代入される為【 else if 】を実行すると言う形になります。
※配列:ss[10]を宣言すると、変数ssをss0〜ss9まで用意してくれます。文字終端マーク【 0 】は文字入力の最後に必ず自動的に代入される数字になります。
 ss[10] を宣言すると以下のように変数が作成されます。例えば ABと入力すると【ss2】には文字列終端マーク0が入ります。
※ss[10]を個別に指定(記述)する場合は、ss[0]、ss[1]、ss[2]・・・ss[9]を記述します。

ss0 ss1 ss2 ss3 ss4 ss5 ss6 ss7 ss8 ss9
A B 0
この部分をifで判定

#include <stdio.h>

int main (void)
{
   char ss[10];
   printf("9文字以内で文字を入力して下さい");
   gets (ss);

   if(ss[0] == 0){
   printf("0文字です\n");
   }

   else if(ss[1] == 0){
   printf("1文字です\n");
   }

   else if(ss[2] == 0){
   printf("2文字です\n");
   }

   else{
   printf("二文字以上です\n");
   }

   return 0;
}

解説 【 else if 】は増やしてもOKです。例 【 else if{ (ss[3] == 0) printf("三文字です\n");} 】コツを掴んでみて下さいね。
else分岐ソース

上記の実行結果です。


【 rand 】0〜32768乱数を発生させる数学関数を使い、6の剰余(割った余り)を求めさせます。すると0〜5をランダムに出力させる事が可能になります。それをさいころ風にさせる為、+1としています。
※浮動小数点を入力すると、何故か暴走してしまいます。サンプルとしてだけ見て下さいね。尚暴走した場合は「ctrl」+「c」キーで停止可能です。

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
   int a,sai;
   a = -1;

   while(a != 0){
   printf("0入力で停止します。予想?");
   scanf("%d",&a);
   sai = rand()%6+1;
   printf("サイコロの目は%d\n",sai);
     if(a == sai){
      printf("大当たり\n");
     }
     else if(a >= 7){
      printf("1〜6です\n");
     }

     else{
      printf("大はずれ\n");
     }
   }

   return 0;
}

上記ソースの解説
【 While 】ループをしようし、変数【 a 】に0を入力すると停止するように、してます。
その間は乱数を発生させると言う条件です。単純に1〜6を出力させても面白みがないので、【 if 】【 else if 】【 else 】でそれぞれの条件にあった文章を出力させるようにしています。
※【 rand 】に付いては後日詳しくいっしょに勉強してみたいと思います。
rand関数のソースサンプル
上記の実行結果です。

あかかげまるのC言語入門はこちら!!

スポンサードリンク

パソコン勉強部屋 | パソコン勉強部屋2 | ADSL勉強部屋 | メール勉強部屋 | LAN勉強部屋 | ホームページ勉強部屋 | 自宅サーバー勉強部屋 | お役立ちソフトの部屋 | C言語勉強 | 無料ゲーム | 無料セキュリティー | Linuxのコーナー | あかかげまる | オンライン通販 | ショップブランドパソコン | DVDとCD編集ツール

 Subscribe in a reader


ページトップへ