Javaの - 演算子は、文字列の場合の条件で動作していないに等しくありません

PGibouin:

私は、スイッチケースチェックでJava(アンドロイド)用に次のコードを持っています。私は、次のコードにデフォルト条件を設定しています:

 switch (value_gain_array[0]) {

        case 5: 
    column[1][0] = "4";
    column[1][1] = "3";
    column[1][2] = "1";
        break;

        case 10:
    column[1][0] = "4";
    column[1][1] = "5";
    column[1][2] = "1";
    break;

        case 50:
    column[1][0] = "1";
    column[1][1] = "1";
    column[1][2] = "4";
break;
        case 100:
    column[1][0] = "2";
    column[1][1] = "3";
    column[1][2] = "5";
break;
        case 500: 
    column[1][0] = "3";
    column[1][1] = "2";
    column[1][2] = "2";
break;
        case 1000:
    column[1][0] = "4";
    column[1][1] = "4";
    column[1][2] = "1";
break;
        case 100000:
    column[1][0] = "5";
    column[1][1] = "5";
    column[1][2] = "3";
    break;

        case 222:
    column[1][0] = "4";
    column[1][1] = "1";
    column[1][2] = "1";
    break;

    case 999:
    column[1][0] = "4";
    column[1][1] = "2";
    column[1][2] = "1";
    break; 

        default:
            boolean control = false;
            while (control == false) {
    //column[1][0] = Integer.toString(Generate_Random_15());
    //column[1][1] = Integer.toString(Generate_Random_15());
    //column[1][2] = Integer.toString(Generate_Random_15());
                column[1][0] = "2";
                column[1][1] = "3";
                column[1][2] = "5";

    String control_column = column[1][0] + column[1][1] + column[1][2];

    if (!"431".equals(control_column) || !"451".equals(control_column) || !"114".equals(control_column) || !"235".equals(control_column) || !"322".equals(control_column) || !"441".equals(control_column) || 
            !"553".equals(control_column) || !"411".equals(control_column) || !"421".equals(control_column)) { control = true;}
        }
            Toast.makeText(context, "control_column_0[]+   " + column[1][0]+column[1][1]+column[1][2], Toast.LENGTH_LONG).show();
break;
    }

残念ながら、デフォルトのスイッチの場合の条件は、私が「235」以下の場合と同様に偽であることを値の制御を強制する場合でも、動作していない、それが起こることはありません。条件は無限ループを作成する必要がある場合は、次の何が間違っているのでしょう(もちろん、真の目的ではなく、乱数発生器のチェックを使用することですか)?

ありがとうございました、

ピエール

    boolean control = false;
            while (control == false) {
    //column[1][0] = Integer.toString(Generate_Random_15());
    //column[1][1] = Integer.toString(Generate_Random_15());
    //column[1][2] = Integer.toString(Generate_Random_15());
                column[1][0] = "2";
                column[1][1] = "3";
                column[1][2] = "5";

    String control_column = column[1][0] + column[1][1] + column[1][2];

    if (!"431".equals(control_column) || !"451".equals(control_column) || !"114".equals(control_column) || !"235".equals(control_column) || !"322".equals(control_column) || !"441".equals(control_column) || 
            !"553".equals(control_column) || !"411".equals(control_column) || !"421".equals(control_column)) control = true;
        }
            Toast.makeText(context, "control_column_0[]+   " + column[1][0]+column[1][1]+column[1][2], Toast.LENGTH_LONG).show();
break;
    }
dunni:

あなたが設定したい場合はcontrol値にtrue制御番号があれば条件に記載された値のいずれかではない場合、あなたは論理ANDと値を接続する必要があります。

if (!"431".equals(control_column) && !"451".equals(control_column) && !"114".equals(control_column) && !"235".equals(control_column) && !"322".equals(control_column) && !"441".equals(control_column) && 
        !"553".equals(control_column) && !"411".equals(control_column) && !"421".equals(control_column)) control = true;

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=235814&siteId=1