Monday, November 3, 2008

Arithmetic Operators

Operators

 

Java provides a rich operator environment. Most of its operators can be divided into the following four groups: arithmetic, bitwise, relational, and logical. Java also defines some additional operators that handle certain special situations. This Post describes all of Java’s operators except for the type comparison operator instanceof, which is examined in upcoming posts

 

If you are familiar with C/C++/C#, then you will be pleased to know that most operators in Java work just like they do in those languages. However, there are some subtle differences, so a careful reading is advised.

 

Arithmetic Operators

Arithmetic operators are used in mathematical expressions in the same way that they are used in algebra. The following table lists the arithmetic operators:

 

Operator         Result

+                      Addition

–                      Subtraction (also unary minus)

*                       Multiplication

/                       Division

%                    Modulus

++                    Increment

+=                    Addition assignment

–=                    Subtraction assignment

*=                    Multiplication assignment

/=                     Division assignment

%=                  Modulus assignment

– –                   Decrement

 

The operands of the arithmetic operators must be of a numeric type. You cannot use them on Boolean types, but you can use them on char types, since the char type in Java is, essentially, a subset of int.

 

The Basic Arithmetic Operators

The basic arithmetic operations—addition, subtraction, multiplication, and division, all behave as you would expect for all numeric types. The minus operator also has a unary form which negates its single operand. Remember that when the division operator is applied to an integer type, there will be no fractional component attached to the result.

 

The following simple example program demonstrates the arithmetic operators. It also illustrates the difference between floating-point division and integer division.

 

// Demonstrate the basic arithmetic operators.

class BasicMath {

public static void main(String args[]) {

// arithmetic using integers

System.out.println("Integer Arithmetic");

int a = 1 + 1;

int b = a * 3;

int c = b / 4;

int d = c - a;

int e = -d;

System.out.println("a = " + a);

System.out.println("b = " + b);

System.out.println("c = " + c);

System.out.println("d = " + d);

System.out.println("e = " + e);

// arithmetic using doubles

System.out.println("\nFloating Point Arithmetic");

double da = 1 + 1;

double db = da * 3;

double dc = db / 4;

double dd = dc - a;

double de = -dd;

System.out.println("da = " + da);

System.out.println("db = " + db);

System.out.println("dc = " + dc);

System.out.println("dd = " + dd);

System.out.println("de = " + de);

}

}

 

When you run this program, you will see the following output:

 

Integer Arithmetic

a = 2

b = 6

c = 1

d = -1

e = 1

 

Floating Point Arithmetic

da = 2.0

db = 6.0

dc = 1.5

dd = -0.5

de = 0.5

No comments: