// --------------
// Operators.java
// --------------
final class OperatorsTest {
public static void main (String[] args) {
System.out.println("Operators.java");
{
final int i = 2;
final int j = -i;
assert i == 2;
assert j == -2;
// ++-i; // doesn't compile
}
{
int i = 2;
int j = ++i;
assert i == 3;
assert j == 3;
// ++++i; // doesn't compile
}
{
int i = 2;
int j = i++;
assert i == 3;
assert j == 2;
// i++++; // doesn't compile
}
{
int i = 2;
final int j = 3;
final int k = (i = j);
assert i == 3;
assert j == 3;
assert k == 3;
// ++(i = j); // doesn't compile
}
{
final int i = 2;
final int j = 3;
final int k = i + j;
assert i == 2;
assert j == 3;
assert k == 5;
// ++(i + j); // doesn't compile
}
{
int i = 2;
final int j = 3;
int k = (i += j);
assert i == 5;
assert j == 3;
assert k == 5;
// ++(i += j); // doesn't compile
}
{
final int i = 12;
final int j = 10;
final int k = i % j;
assert i == 12;
assert j == 10;
assert k == 2;
// ++(i % j); // doesn't compile
}
{
int i = 12;
final int j = 10;
final int k = (i %= j);
assert i == 2;
assert j == 10;
assert k == 2;
// ++(i %= j); // doesn't compile
}
{
final int i = 2;
final int j = 3;
final int k = i << j;
assert i == 2;
assert j == 3;
assert k == 16;
// ++(i << j); // doesn't compile
}
{
int i = 2;
final int j = 3;
final int k = (i <<= j);
assert i == 16;
assert j == 3;
assert k == 16;
// ++(i <<= j); // doesn't compile
}
{
final int i = 10; // 0000 0000 0000 1010
final int j = ~i; // 1111 1111 1111 0101
final int k = ~i + 1; // 1111 1111 1111 0110
assert i == 10;
assert j == -11;
assert k == -10;
// ++~i;
}
{
final int i = 10; // 1010
final int j = 12; // 1100
final int k = i & j; // 1000
assert i == 10;
assert j == 12;
assert k == 8;
// ++(i & j); // doesn't compile
}
{
int i = 10; // 1010
final int j = 12; // 1100
final int k = (i &= j); // 1000
assert i == 8;
assert j == 12;
assert k == 8;
// ++(i &= j); // doesn't compile
}
{
final int i = 10; // 1010
final int j = 12; // 1100
final int k = i | j; // 1110
assert i == 10;
assert j == 12;
assert k == 14;
// ++(i | j); // doesn't compile
}
{
int i = 10; // 1010
final int j = 12; // 1100
final int k = (i |= j); // 1110
assert i == 14;
assert j == 12;
assert k == 14;
// ++(i |= j); // doesn't compile
}
{
final int i = 10; // 1010
final int j = 12; // 1100
final int k = i ^ j; // 0110
assert i == 10;
assert j == 12;
assert k == 6;
// ++(i ^ j); // doesn't compile
}
{
int i = 10; // 1010
final int j = 12; // 1100
final int k = (i ^= j); // 0110
assert i == 6;
assert j == 12;
assert k == 6;
// ++(i ^= j); // doesn't compile
}
{
int i = 10; // 1010
int j = 12; // 1100
i ^= j;
assert i == 6; // 0110
assert j == 12; // 1100
j ^= i;
assert i == 6; // 0110
assert j == 10; // 1010
i ^= j;
assert i == 12; // 1100
assert j == 10; // 1010
}
{
int i = 10;
int j = 12;
i += j;
assert i == 22;
assert j == 12;
j = i - j;
assert i == 22;
assert j == 10;
i -= j;
assert i == 12;
assert j == 10;
}
{
final boolean a = true;
final boolean b = true;
final boolean c = false;
assert a && b;
assert !(a && c);
assert a || b;
assert a || c;
assert (a && b) == !(!a || !b);
assert (a && c) == !(!a || !c);
}
System.out.println("Done.");}}
syntax highlighted by Code2HTML, v. 0.9.1