Переменная Назначение плюс дополнительный

1
boolean []r = new boolean[numberOfStates];
for(int i=0; i<numberOfStates;i++)
    r[i]=i==q;

Будучи q, я и numberOfStates int переменными, что делает r [i] = я == q; делать?

  • 0
    В более простом дизайне это то же самое, что сказать boolean b = (1 == 1); например. b было бы правдой в этом смысле.
Теги:

3 ответа

3

i==q разрешает логическое значение и присваивается как значение r[i].

2

Он присваивает true r[i] если i==q и false, если нет.

Это означает, что r[q] является единственным элементом в массиве, которому будет присвоено значение true.

Поскольку все значения логического массива инициализируются значением false, вы можете заменить этот фрагмент кода на:

boolean [] r = new boolean[numberOfStates];
r[q] = true;
0

если вы инициализируете массив as и q, как показано ниже, вы получите результат

true false

    public static void main(String[] args) {
        int numberOfStates = 2;
        int q = 0;
        boolean []r = new boolean[numberOfStates];
        r[0] = false;
        r[1] = false;
        for(int i=0; i<numberOfStates;i++)
            r[i]=i==q;

        for(int i=0; i<numberOfStates;i++)
            System.out.println(r[i]);

    }

согласно моему пониманию == имеет более высокую приоритетность, чем = so r [i] = я == q; будет оцениваться как я == q (q равно 0), это приведет к тому, что true, присвоенный r [[0]], true;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню