9.論理演算(含む8.条件判断 )


前回の就職可能性判定のプログラムを、多少加工して組み込み型のプログラムにしてみましょう。

サンプル9−1
#include <stdio.h>
int main()
{
 int nen1,nen2,nen3,nen4,grad;
 int hantei;

 nen1=0;
 nen2=0;
 nen3=0;
 nen4=0;
 grad=0;
 hantei=0;

printf("今何年生ですか?\n");
scanf("%d",&grad);

if(grad <= 1 || grad >= 5)
{
printf("学年の入力が微妙です。\n");

return(0);
}
  if (grad >= 2 && grad < 5)
  {
  printf("1年次の単位取得数は何単位ですか?\n");
  scanf("%d",&nen1);
  }
   if (grad >= 3 && grad < 5)
    {
    printf("2年次の単位取得数は何単位ですか?\n");
    scanf("%d",&nen2);
    }
      if (grad >= 4 && grad < 5)
      {
      printf("3年次の単位取得数は何単位ですか?\n");
      scanf("%d",&nen3);
      }
          if (grad == 5)
          {
         printf("4年次の単位取得数は何単位ですか?\n");
          scanf("%d",&nen4);
          }
         hantei = nen1 + nen2 + nen3 + nen4;
      hantei = hantei * 3 / (grad - 1);
printf("%d\n",hantei);
if(hantei < 110 && hantei >= 80)
{
printf("4年次に就職活動はできそうですか?\n");
}
if(hantei < 80 && hantei >= 60)
{
printf("まさか、すでに留年確定ですか?\n");
}
if(hantei < 60)
{
printf("何かの冗談でしょう…\n");
}
if(hantei >= 110)
{
printf("その調子でがんばりましょう\n");
}/*手入力でがんばってもらえましたか?*/
return(0);
}

このプログラムでは、学年の判定を行い、それに併せて評価の基準が変わるようになっています。

<switch-caseステートメント>

内容自体は、if-elseステートメントとほとんど変わらないのですが、分岐処理をより視覚的に行うために使われるのが、switch-caseステートメントです。
1週間にとっている授業数が、適切かどうかを判定するプログラムが次になります。9コマから12コマが普通で、それ以上でもそれ以下でも問題があるんじゃないかと問い掛けています。

サンプル9−2
#include <stdio.h>

int main()
{
int ans;
printf("1週間に受けている授業のコマ数を整数で記入してください。\n");
scanf("%d", &ans);

switch(ans)
{
   case 9:
   case 10: printf("まあまあですね。\n");
                break;
   case 11: printf("丁度いいくらいか、");
   case 12: printf("ちょっとヘビー気味ですね。\n");
                break;
   default:   printf("いろんな意味で大丈夫ですか?\n");
}
return(0);
}

if 文でも、switch 文でも内容はほとんど同じです。ただし、通常の分岐処理は if 文でプログラムを作るようにしましょう。switch 文が向いているのは、選択問題で、分岐の数が多いものになります。


課題 無し必修ではありませんが、9-1のプログラムを switch を使って書いたらどんな風になるか。できる人がいたらやってみてください。当然、相応の評価をします。
前のページへ このページの先頭へ 次のページへ 


プログラミングホーム