第5講 if文に挑戦しよう 
第7話 if文を利用して最大値を求めようその2

解答例

int a1;
int a2;
int a3;
int a4;
int a5;

String^ b1;
String^ b2;
String^ b3;
String^ b4;
String^ b5;

int w;
String^ n=L"";
int i;

a1=int::Parse(textBox1->Text);
a2=int::Parse(textBox2->Text);
a3=int::Parse(textBox3->Text);
a4=int::Parse(textBox4->Text);
a5=int::Parse(textBox5->Text);

b1=label1->Text;
b2=label2->Text;
b3=label3->Text;
b4=label4->Text;
b5=label5->Text;

w=0;
if(a1>=w){
     w=a1;
     n=b1;
}
if(a2>=w){
     if(a2>w){
          n=b2;
    }
    else{
         n=n+L" "+b2;
    }
    w=a2;
}
if(a3>=w){
     if(a3>w){
          n=b3;
     }
     else{
          n=n+L" "+b3;
     }
     w=a3;
}
if(a4>=w){
      if(a4>w){
           n=b4;
      }
      else{
          n=n+L" "+b4;
      }
     w=a4;
}
if(a5>=w){
     if(a2>w){
          n=b5;
     }
     else{
          n=n+L" "+b5;
     }
    w=a5;
}

textBox6->Text=n;
textBox7->Text=w.ToString();


このようにプログラミングをすると

とうまく表示されます。

if(a2>=w){
     if(a2>w){
          n=b2;
    }
    else{
         n=n+L" "+b2;
    }
    w=a2;
}
の解説をしましょう。
a2>=wは二つの可能性があります。
a2>wとa2=wです。
これは、a2>a1とa2=a1と同じです。
その前に
if(a1>=w){
     w=a1;
     n=b1;
}
でw=a1となっているわけですから。
そこで、a2>a1の場合はn=b2;
によってnの内容が書き換わります。
そして、a2=a1のときは、
n=n+L" "+b2;
内容が加えられます。
同点のときは、名前が次々に追加されていくことによってソフトの欠点を改善しているのです。
気をつけたいのは、うっかりすると
if(a2>=w){
     w=a2;
     if(a2>w){
          n=b2;
    }
    else{
         n=n+L" "+b2;
    }
}
としてしまいますが、これだと正常に動きません。
w=a2;によってwはa2になってしまっていますので、
   if(a2>w){
          n=b2;
    }
    else{
         n=n+L" "+b2;
    }
の部分はelseしか実行されないことになってしまうからです。
したがって、
if(a2>=w){
     if(a2>w){
          n=b2;
    }
    else{
         n=n+L" "+b2;
    }
    w=a2;
}
としなければならないのです。

では、みなさんソフトを改善して、成績最不振者を表示させるソフトを作りましょう。


第6話へ 第8話へ


初心者のためのjava 入門 基礎から応用まで
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第1部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第2部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第3部
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすい vb 入門 vba 入門 基礎から応用まで 第1部
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ