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:
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 unary minus operator negates its
single operand. The unary plus operator simply returns the value of its
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
The
Modulus Operator
The
modulus operator, %, returns the
remainder of a division operation. It can be applied to floating-point types as
well as integer types. The following example program demonstrates the %:
// Demonstrate the %
operator. class Modulus {
public static void
main(String args[]) { int x = 42;
double y = 42.25;
System.out.println("x
mod 10 = " + x % 10); System.out.println("y mod 10 = " + y %
10);
}
}
When you run this program,
you will get the following output:
x mod 10 = 2
y mod 10 = 2.25
Arithmetic
Compound Assignment Operators
Java
provides special operators that can be used to combine an arithmetic operation
with an assignment. As you probably know, statements like the following are
quite common in programming:
a = a + 4;
In Java, you can rewrite this
statement as shown here:
a += 4;
This
version uses the += compound assignment
operator. Both statements perform the same action: they increase the value
of a by 4.
Here is another example,
a = a % 2;
which can be expressed as
a %= 2;
In this case, the %= obtains the remainder of a /2 and puts that result back into a.
There are compound assignment
operators for all of the arithmetic, binary operators. Thus, any statement of
the form
var = var op expression;
can be rewritten as
var op= expression;
The
compound assignment operators provide two benefits. First, they save you a bit
of typing, because they are “shorthand” for their equivalent long forms.
Second, in some cases they are more efficient than are their equivalent long
forms. For these reasons, you will often see the compound assignment operators
used in professionally written Java programs.
Here is a sample program that
shows several op= assignments in
action:
// Demonstrate several assignment
operators. class OpEquals {
public static void
main(String args[]) { int a = 1;
int b = 2; int c = 3;
a += 5; b *= 4;
c += a * b; c %= 6;
System.out.println("a =
" + a); System.out.println("b = " + b);
System.out.println("c = " + c);
}
}
The output of this program is
shown here:
a = 6 b = 8 c = 3
Increment
and Decrement
The ++ and the – – are Java’s
increment and decrement operators. They were introduced in Chapter 2. Here they
will be discussed in detail. As you will see, they have some special properties
that make them quite interesting. Let’s begin by reviewing precisely what the
increment and decrement operators do.
The
increment operator increases its operand by one. The decrement operator
decreases its operand by one. For example, this statement:
x = x + 1;
can be rewritten like this by
use of the increment operator:
x++;
Similarly, this statement:
x = x - 1;
is
equivalent to
x--;
These operators are unique in
that they can appear both in postfix
form, where they follow the operand as just shown, and prefix form, where they precede the operand. In the foregoing
examples, there is no difference between the prefix and postfix forms. However,
when the increment and/or decrement operators are part of a larger expression,
then a subtle, yet powerful, difference between these two forms appears. In the
prefix form, the operand is incremented or decremented before the value is
obtained for use in the expression. In postfix form, the previous value is
obtained for use in the expression, and then the operand is modified. For
example:
x = 42; y = ++x;
In this
case, y is set to 43 as you would
expect, because the increment occurs before
x is assigned to y. Thus, the line y = ++x; is the
equivalent of these two statements:
x = x + 1; y = x;
However, when written like
this,
x = 42; y = x++;
the value of x is obtained before the increment
operator is executed, so the value of y
is 42. Of course, in both cases x is
set to 43. Here, the line y = x++;
is the equivalent of these two statements:
y = x;
x = x + 1;
The following program
demonstrates the increment operator.
// Demonstrate ++. class
IncDec {
public static void
main(String args[]) { int a = 1;
int b = 2; int c; int d;
c = ++b; d = a++; c++;
System.out.println("a =
" + a); System.out.println("b = " + b);
System.out.println("c = " + c); System.out.println("d = " +
d);
}
}
The output of this program
follows:
a = 2 b = 3 c = 4 d = 1
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2023 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.