30/09/2018, 16:16

Poll: Kiểm tra kiến thức Core Java - 1.03

Let’s have a discussion about this problem and get the answer here http://www.indiabix.com/online-test/java-programming-test/61
3. What will be the output of the program?


class BoolArray 
{
    boolean [] b = new boolean[3];
    int count = 0;

    void set(boolean [] x, int i) 
    {
        x[i] = true;
        ++count;
    }

    public static void main(String [] args) 
    {
        BoolArray ba = new BoolArray();
        ba.set(ba.b, 0);
        ba.set(ba.b, 2);
        ba.test();
    }

    void test() 
    {
        if ( b[0] && b[1] | b[2] )
            count++;
        if ( b[1] && b[(++count - 2)] )
            count += 7;
        System.out.println("count = " + count);
    }
}
	
  • A. count = 0
  • B. count = 2
  • C. count = 3
  • D. count = 4
Đỗ Trung Quân viết 18:25 ngày 30/09/2018

The reference variables b and x both refer to the same boolean array. count is incremented for each call to the set() method, and once again when the first if test is true. Because of the && short circuit operator, count is not incremented during the second if test.

mmmm viết 18:30 ngày 30/09/2018

Chào anh, anh giải thích tiếng anh em không hiểu ạ, cho em hỏi khi gặp các toán tử && || | & thì thứ tự từ phải qua trái và có ưu tiên gì ko ạ

Bài liên quan
0