第5講 もしもボックス(if文)
第7話 if~else文を入れ子式に使い5段階評価を行う
前話問題
解答例
#include<iostream>
#include<stdlib.h>
#include<ctime>
using namespace std;
int main(){
short a,i;
srand(static_cast<unsigned int>(time(0)));
for(i=1;i<11;i++){
a=rand()%100;
cout<<"発生データ "<<a<<endl;
if(a>=60){
cout<<"合格"<<endl;
}
else{
cout<<"不合格"<<endl;
}
if(a>=70){
cout<<"優良"<<endl;
}
else{
if(a>=50){
cout<<"普通"<<endl;
}
else{
cout<<"不良"<<endl;
}
}
if(a>=75){
cout<<"大変優秀"<<endl;
}
else{
if(a>=65){
cout<<"優秀"<<endl;
}
else{
if(a>=45){
cout<<"平凡"<<endl;
}
else{
cout<<"努力が必要"<<endl;
}
}
}
if(a>=80){
cout<<"天才級"<<endl;
}
else{
if(a>=68){
cout<<"秀才級"<<endl;
}
else{
if(a>=48){
cout<<"のび太級"<<endl;
}
else{
if(a>=30){
cout<<"ベム・ベラ・ベロ級"<<endl;
}
else{
cout<<"はやく人間になりたい級以下"<<endl;
}
}
}
}
}
}
if~else文を入れ子式に使えば何段階評価でもできることがわかります。
ですが、
if(a>=80){
cout<<"天才休"<<endl;
}
else{
if(a>=68){
cout<<"秀才級"<<endl;
}
else{
if(a>=48){
cout<<"のび太級"<<endl;
}
else{
if(a>=30){
cout<<"ベム・ベラ・ベロ級"<<endl;
}
else{
cout<<"はやく人間になりたい級以下"<<endl;
}
}
}
}
はわかりやすいとはいえません。
if~else文はプログラムを分かりにくくするので、
使わない方がよいという人もいます。
実は、if~else文を使わなず、if文だけでも3つ以上の場合分けは可能です。
例えば、
70以上なら『進級』
70未満50以上なら『再試験』
50未満なら『留年』
の3つの場合分けは、
if(a>=70){
cout<<"進級"<<endl;
}
if(a>=50 && a<70){
cout<<"再試験"<<endl;
}
if(a<50){
cout<<"留年"<<endl;
}
とできます。
&& は『かつ』を意味します。
a>=50 && a<70
は50以上かつ70未満で、条件『70未満50以上』と同一になります。
因みに『または』は || です。
では、皆さんif文のみでプログラムを書き換えてみましょう。
第6話へ 第8話へ
初心者のためのjava 入門 基礎から応用まで
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第1部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第2部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第3部
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
VC++入門
VBA入門
専門用語なしのVBA入門
VB入門
初心者のためのEclipseによるJava入門