变量赋值加一个额外的

时间:2015-01-29 13:15:19

标签: java

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

成为q,i和numberOfStates int变量, 什么是r [i] = i == q;办?

3 个答案:

答案 0 :(得分:3)

i==q解析为布尔值,并被指定为r[i]的值。

答案 1 :(得分:2)

如果r[i],则为i==q,如果不是,则为真。

这意味着r[q]是数组中唯一被赋值为true的元素。

由于布尔数组的所有值都初始化为false,因此您可以将此代码段替换为:

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

答案 2 :(得分:0)

如果你初始化数组as和q如下所示,你将得到结果

真 假

    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]);

    }

根据我的理解==具有比=更高的优先级 所以r [i] = i == q;将评估为i == q(q为0),结果为真 ans赋予r [[0]]为真;