第5講 if文を理解しよう
第6話 if~else文による3段階評価

第5話問題解答例
#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{
         if(a<10)cout<<" ";
         cout<<":今一歩の努力が必要です"<<endl;
       }
     }
   }
}


解説
if(a<10)cout<<" ";に?マークですよね。
今までの書き方なら
if(a<10){
   cout<<" ";

}
ですが、
実はif文もif~else文も1文しかないときは、
if(*)A;
if(*)A;else B;
と1行で書けるのです。
ただし、elseと文の間には半角スペースが必要です。

この書き方を使用すれば
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{
       if(a<10)cout<<" ";
       cout<<":今一歩の努力が必要です"<<endl;
     }
   }
}
と簡略になります。ただ、余りにも簡略にするのはお勧めできません。
わかりにくくなるからです。やはり、
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{
         if(a<10)cout<<" ";
         cout<<":今一歩の努力が必要です"<<endl;
       }
     }
   }
}
と書くべきです。段組が組んであって、入れ子式の構造が明らかだからです。

さて、それでは次に4段階評価に挑戦しましょう。段階評価は、例えば
80点以上なら『非常に優秀』、80点未満70点以上なら『優秀』、70点未満50点以上なら『普通』、50点未満なら『努力が必要』
などとしましょう。尚、プログラミングには遊びが必要ですから、コメントをいろいろ変えて楽しんでください。

第5話へ 第7話へ


戻る


VB講義へ
VB講義基礎へ

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