Flash CS6 AS3.0にて制作しております。
テキストボックスが4つありそれぞれに2ケタの数字が入ります。
全ての値が同じ数値なら0円、
3つ同じで1つ違う場合(2種類の数値)は1,050円、
2つ同じで2つが違う場合(3種類の数値)は2,100円、
全て違う場合(4種類の数値)は3,150円、
という計算がしたく以下のようにif文でずらずら書きましたが実際はテキストボックスが40個ほどあり
大量の計算式をずらずら並べないといけません。すっきりとまとめる方法や関数がありましたら
教えて下さい。宜しくお願いします。
if (pass1 == pass2) {
//pass2がpass1と同じなら0
data2 = 0;
} else if (pass1 != pass2) {
//pass2がpass1と違うなら1050
data2 = 1050;
}
if (pass1 == pass3) {
//pass3がpass1と同じなら0
data3 = 0;
} else if (pass1 != pass3 && pass2 == pass3) {
//pass3がpass1とは違うがpass2と同じなら0
data3 = 0;
} else if (pass1 != pass3 && pass2 != pass3) {
//pass3がpass1ともpass2とも違うなら1050
data3 = 1050;
}
if (pass1 == pass4) {
//pass4がpass1と同じなら0
data4 = 0;
} else if (pass1 != pass4 && pass2 == pass4 && pass3 != pass4) {
//pass4がpass1とpass3とは違うがpass2と同じなら0
data4 = 0;
} else if (pass1 != pass4 && pass2 != pass4 && pass3 == pass4) {
//pass4がpass1ともpass2とも違うがpass3とは同じなら0
data4 = 0;
} else if (pass1 != pass4 && pass2 != pass4 && pass3 != pass4) {
//pass4がpass1ともpass2ともpass3とも違うなら0
data4 = 0;
}
total = data2+data3+data4;
No.3ベストアンサー
- 回答日時:
一般的には、
1) 40個の値を昇順/降順どちらでも並べ替え
2) 端から値を2つずつ比較
3) 値が異なってれば値の種類の数を+1
とか。
3, 7, 15, 4, 8, 7, 12, 1, 10, 8, 9, 7
だと分かりにくいけど、
1, 3, 4, 7, 7, 7, 8, 8, 9, 10, 12, 15
なら数えやすいみたいな。
--
> 実際はテキストボックスが40個ほどあり
でも、入る数字が00~99の2桁なら、
1) 0~99までループ
2) 対象の数字と40個の数字と一致するものがあれば種類の数を+1
とかでもループ回数はたかが知れてるのでOKだと思いますし。
返答ありがとうございます。おかげさまで以下のやり方で無事解決しました。
var myValue:Array = [pass1.text,pass2.text,pass3.text,pass4.text];
myValue.sort(Array.NUMERIC);
if (myValue[0] == myValue[1])
{
hikaku_pass_1.text = "0";
}
else
{
hikaku_pass_1.text = "1";
}
if (myValue[1] == myValue[2])
{
hikaku_pass_2.text = "0";
}
else
{
hikaku_pass_2.text = "1";
}
if (myValue[2] == myValue[3])
{
hikaku_pass_3.text = "0";
}
else
{
hikaku_pass_3.text = "1";
}
hikaku_pass_total.text = String(int(hikaku_pass_1.text) + int(hikaku_pass_2.text) + int(hikaku_pass_3.text));
あとはこれをfor文ですっきりまとめる事が出来れば完璧なので考えてみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) パイソンのプログラムで continue と passの違い 3 2022/03/25 07:38
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
- PHP php ログイン 1 2022/11/01 00:24
- PHP DBのハッシュ化したパスワードをpassword_verifyで戻し照合したのですが上手く行きません 2 2023/02/06 13:24
- Microsoft ASP LEDで電光掲示板に「A B C D E」と表示したいのですが・・・ 1 2023/07/04 07:37
- 英語 部分否定、全否定 1 2023/03/03 12:59
- 物理学 LOW/HIGH-PASS フィルター 3 2022/04/16 16:49
- その他(ゲーム) マイクロソフトのサブスクリプション Xbox Game Passはお得か? 1 2022/06/22 18:23
- Visual Basic(VBA) VBAでシートの保護をかける際に「書式設定の変更」を有効にする 1 2023/04/17 18:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語 exitの使い方
-
数字の位ごとの値を表示するプ...
-
VB6.0-整数と余りを求める
-
世界のナベアツ
-
Excel-vba 文字列と変数を...
-
Access2003 オートナンバーの現...
-
ラジオボタンの値の取得につい...
-
フリーランタイマーの時間差分...
-
VBAの定数の使い方で、計算値を...
-
足して100になるような乱数のア...
-
Rails3 の time_select の値表示
-
1つ前の値を変数に保存する方法
-
c言語で乱数を扱うときの
-
DWORDって
-
アルゴリズムのトレースについて
-
C#で動的にコントロールを取得...
-
フォームを開くときに、コンボ...
-
乱数の最大値
-
UWSCのcallについて
-
long型のランダムな値を返す方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語 exitの使い方
-
フォームを開くときに、コンボ...
-
Excel-vba 文字列と変数を...
-
数字の位ごとの値を表示するプ...
-
VB6.0-整数と余りを求める
-
VBAで配列のNULL判定
-
足して100になるような乱数のア...
-
フリーランタイマーの時間差分...
-
DataGridView 複数行同時変更...
-
相関係数p値の出し方
-
世界のナベアツ
-
10進数をアスキーコードに変換
-
C#で動的にコントロールを取得...
-
ラジオボタンの値の取得につい...
-
DWORDって
-
バッチファイルで正規表現を使...
-
4択問題のプログラムでランダム...
-
1つ前の値を変数に保存する方法
-
VBAの定数の使い方で、計算値を...
-
コンボボックスの名前を変数に...
おすすめ情報