• 締切済み

助けてぐたさい

会社で上司から課題をもらったんですが 問題 テキストボックスに数字を入力してボタンをクリックするとメッセージを  表示するようにします。メッセージは数字が{1, 3, 6, 8, 10, 11, 14}のう  ちのどれかであれば、「選択できます。」、それ以外は「選択できません。」  と表示します。for,if,elseなどが出て来る数も順番も同じです 「参考になるソースコード」 if(ACol < sg->FixedCols || sg->ColCount <= ACol) return false; else if(ARow < sg->FixedRows || sg->RowCount <= ARow) return false; int cols[] = {1, 3, 6, 8, 10, 11, 14}; for(int i=0;i<7;i++){ if(ACol==cols[i]) return true; } return false; } 私はこのように作りましたが  int str=StrToInt(EditIn->Text); int no[] = {1, 3, 6, 8, 10, 11, 14}; for(int i=0;i<7;i++){ if(str==no[i]){ ShowMessage("選択できます");  break ;} else ShowMessage("選択できません");} }

みんなの回答

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.2

判定を全部forループの中で片づけようとしてるのが間違いです。 「選択できます」はループ中でいいのですが、「選択できません」はループ中でヒットしなかった場合のみ表示されなければならないので、ループの外に判定を置かなければだめ。 ソースを提示するのは簡単ですが、これも仕事の一環ですからあとはご自身で考えてください。

bagu3000
質問者

お礼

回答ありがとうございます。 早速やってみます。

回答No.1

質問内容が途中のようですが、何をお答えすればよいでしょうか?

bagu3000
質問者

補足

1を入力すると"選択できます"と表示されますが2を入力すると"選択できません"と表示されます。 3を入力すると最初は"選択できません"と表示され、メッセージのokボタンを押すと"選択できます"が表示されます。私が作成したソースコードがおかしいのはわかりますが、どこをどのように直せばよいのかよくわかりませんので 教えて下さい。

関連するQ&A