第5講 if文を理解しよう
第5話 if~else文による多段階評価
前々話において
     if(a>=50){
        cout<<"は合格"<<endl;
     }
     if(a<50){
        cout<<"は不合格"<<endl;
     }

   if(a>=50){
     cout<<"は合格"<<endl;
   }
   else{
     cout<<"は不合格"<<endl;
   }

としても同じだと書きました。
そして、if~else文の場合後半部分が、否定文になるので使わない方がよいという意見の人もいるということを紹介しました。
確かに、a>=50の否定はa<50であるということがわかりにくい場合もあります。
ですが、私はif~else文も場面によっては使ってもよいと思います。
if~else文を入れ子式に使うと、実は合格・不合格の2段評価でなく、
3段評価、4段評価、5段評価などができるからです。

if~else文を入れ子式に使うとはどういう意味でしょうか。
if(*){
   ・

else{
   if(*){
     ・
   }
   else{
     ・
   }
}
if~else文の否定部分にまた、if~else文を組み込むのが入れ子式です。
何回でもelse部分に組み込むことができますので、多段階選択が可能なわけです。

では、実際に3段階評価を組んでみましょう。
80点以上は『:優秀です』、80点未満50点以上は『:がんばりました』、50点未満は『:もう一歩の努力が必要です』
にするにはif~else文をどのように書いたらよいですか。
コーティング(=ソース=コード=プログラミングの文章)を変更してください。
解答例は30行下。




























#include<iostream>
#include<string>
#include<ctime>
using namespace std;
using namespace System;
int main(){
   int a,i;
   srand(static_cast<unsigned int>(time(0)));
   for(i=1;i<21;i++){
     a=rand()%100;
     cout<<a;
     if(a>=80){
       cout<<":優秀"<<endl;
     }
     else{
       if(a>=50){
         cout<<":がんばりました"<<endl;
       }
       else{
         cout<<":今一歩の努力が必要です"<<endl;
       }
     }
   }
}
実行画面例
入門
解説
     else{
       if(a>=50){

a>=50は、a>=80が否定されている条件下ですから実質80点未満50点以上と同じになります。



一桁のとき、位置がずれていますのでif文を使って次のようになるように変更しましょう。
C
解答例は次話で。




第4話へ 第6話へ


戻る


VB講義へ
VB講義基礎へ

vc++講義へ第1部へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)