Java - Оператор не равен не работает в условии if для строк - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть следующий код для Java (Android) при проверке регистра.Я установил в качестве условия по умолчанию следующий код:

 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;
    }

К сожалению, условие if переключателя по умолчанию не работает, даже когда я заставляю элемент управления значением быть ложным, как в следующем случае «235»никогда не бываетСледующее условие if должно создать бесконечный цикл (конечно, реальная цель - использовать вместо этого проверку случайного генератора) Что я делаю не так?

Спасибо,

Pierre

    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;
    }

1 Ответ

0 голосов
/ 04 декабря 2018

Если вы хотите установить control на значение true, если контрольный номер не является ни одним из значений, указанных в вашем условии if, вы должны связать значения с помощью логического И:

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;
...