第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点未満なら『努力が必要』
などとしましょう。尚、プログラミングには遊びが必要ですから、コメントをいろいろ変えて楽しんでください。
VB講義へ
VB講義基礎へ
vc++講義へ第1部へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)