boolean []r = new boolean[numberOfStates];
for(int i=0; i<numberOfStates;i++)
r[i]=i==q;
Будучи q, я и numberOfStates int переменными, что делает r [i] = я == q; делать?
i==q
разрешает логическое значение и присваивается как значение r[i]
.
Он присваивает true r[i]
если i==q
и false, если нет.
Это означает, что r[q]
является единственным элементом в массиве, которому будет присвоено значение true.
Поскольку все значения логического массива инициализируются значением false, вы можете заменить этот фрагмент кода на:
boolean [] r = new boolean[numberOfStates];
r[q] = true;
если вы инициализируете массив 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;
boolean b = (1 == 1);
например.b
было бы правдой в этом смысле.