Unit II
Unit II
Unit-II
22PLC25C
K.S.Mathad
Arithmetic Operators
K.S.Mathad
// 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
}
} K.S.Mathad
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);
}
}
K.S.Mathad
Output
Integer Arithmetic
a=2
b=6
c=1
d = -1
e=1
K.S.Mathad
The Bitwise Operators
K.S.Mathad
The Bitwise Logical Operators
K.S.Mathad
// Demonstrate the bitwise logical operators.
class BitLogic {
public static void main(String args[]) {
String binary[] = {
"0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111",
"1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111"
};
int a = 3; // 0 + 2 + 1 or 0011 in binary
int b = 6; // 4 + 2 + 0 or 0110 in binary
int c = a | b;
int d = a & b;
int e = a ^ b;
int f = (~a & b) | (a & ~b);
int g = ~a & 0x0f;
System.out.println(" a = " + binary[a]);
System.out.println(" b = " + binary[b]);
System.out.println(" a|b = " + binary[c]);
System.out.println(" a&b = " + binary[d]);
System.out.println(" a^b = " + binary[e]);
System.out.println("~a&b|a&~b = " + binary[f]);
System.out.println(" ~a = " + binary[g]);
}
}
K.S.Mathad
Output
a = 0011
b = 0110
a|b = 0111
a&b = 0010
a^b = 0101
~a&b|a&~b = 0101
~a = 1100
K.S.Mathad
The Left Shift
The left shift operator, << shifts all of the bits in a value to the
left a specified number of times.
// Left shifting a byte value.
class ByteShift {
public static void main(String args[]) {
byte a = 64, b;
int i;
i = a << 2;
b = (byte) (a << 2);
System.out.println("Original value of a: " + a);
System.out.println("i and b: " + i + " " + b);
}
}
K.S.Mathad
Original value of a: 64
i and b: 256 0
a= (0100 0000)
i= (1 0000 0000)
The value in b contains 0 because after the shift,
the low-order byte is now zero. Its only 1 bit
has been shifted out
K.S.Mathad
The Right Shift
int a = 32;
a = a >> 2; // a now contains 8
K.S.Mathad
Bitwise Operator Assignments
• All of the binary bitwise operators have a
shorthand form similar to that of the
algebraic operators, which combines the
assignment with the bitwise operation. For
example, the following two statements,
which shift the value in a right by four bits,
are equivalent:
• a = a >> 4;
• a >>= 4;
K.S.Mathad
Relational Operators
• The relational operators determine the
relationship that one operand has to the
other.
K.S.Mathad
Ex
int a = 4;
int b = 1;
boolean c = a < b;
K.S.Mathad
The Assignment Operator
• .The assignment operator is the single equal
sign, =. The assignment operator works in
Java much as it does in any other computer
language.
• var = expression;
K.S.Mathad
The ? Operator
• Java includes a special ternary (three-way)
operator that can replace certain types of if-
then-else statements.
• expression1 ? expression2 : expression3
• ratio = denom == 0 ? 0 : num / denom;
K.S.Mathad
// Demonstrate ?.
class Ternary {
public static void main(String args[]) {
int i, k;
i = 10;
k = i < 0 ? -i : i; // get absolute value of i
System.out.print("Absolute value of ");
System.out.println(i + " is " + k);
i = -10;
k = i < 0 ? -i : i; // get absolute value of i
System.out.print("Absolute value of ");
System.out.println(i + " is " + k);
}
}
K.S.Mathad
output
Absolute value of 10 is 10
Absolute value of -10 is 10
K.S.Mathad
Operator Precedence
K.S.Mathad
Using Parentheses
• Parentheses raise the precedence of the
operations that are inside them. This is often
necessary to obtain the result you desire.
• a >> (b + 3) This expression first adds 3 to b
and then shifts a right by that result.
• However, if you want to first shift a right by b
positions and then add 3 to that result
• (a >> b) + 3
K.S.Mathad
Control Statements
K.S.Mathad
If else if
// Demonstrate if-else-if statements.
class IfElse {
public static void main(String args[]) {
int month = 4; // April
String season;
if(month == 12 || month == 1 || month == 2)
season = "Winter";
else if(month == 3 || month == 4 || month == 5)
season = "Spring";
else if(month == 6 || month == 7 || month == 8)
season = "Summer";
else if(month == 9 || month == 10 || month == 11)
season = "Autumn";
else
season = "Bogus Month";
System.out.println("April is in the " + season + ".");
}
}
K.S.Mathad
output
April is in the Spring.
K.S.Mathad
switch
switch (expression) {
case value1:
// statement sequence
break;
case value2:
// statement sequence
break;
.
.
.
case valueN:
// statement sequence
break;
default:
// default statement sequence
}
K.S.Mathad
output
i is zero.
i is one.
i is two.
i is three.
i is greater than 3.
i is greater than 3.
K.S.Mathad
// A simple example of the switch.
class SampleSwitch {
public static void main(String args[]) {
for(int i=0; i<6; i++)
switch(i) {
case 0:
System.out.println("i is zero.");
break;
case 1:
System.out.println("i is one.");
break;
case 2:
System.out.println("i is two.");
break;
case 3:
System.out.println("i is three.");
break;
default:
System.out.println("i is greater than 3.");
}
}
}
K.S.Mathad
Output using switch
i is less than 5
i is less than 5
i is less than 5
i is less than 5
i is less than 5
i is less than 10
i is less than 10
i is less than 10
i is less than 10
i is less than 10
i is 10 or more
i is 10 or more
K.S.Mathad
// In a switch, break statements are optional.
class MissingBreak {
public static void main(String args[]) {
for(int i=0; i<12; i++)
switch(i) {
case 0:
case 1:
case 2:
case 3:
case 4:
System.out.println("i is less than 5");
break;
case 5:
case 6:
case 7:
case 8:
case 9:
System.out.println("i is less than 10");
break;
default:
System.out.println("i is 10 or more");
}
}
}
K.S.Mathad
output
April is in the Spring.
K.S.Mathad
class Switch {
public static void main(String args[]) {
int month = 4;
String season;
switch (month) {
case 12:
case 1:
case 2:
season = "Winter";
break;
case 3:
case 4:
case 5:
season = "Spring";
break;
case 6:
case 7:
case 8:
season = "Summer";
break;
case 9:
case 10:
case 11:
season = "Autumn";
break;
default:
season = "Bogus Month";
}
System.out.println("April is in the " + season + ".");
}
}
K.S.Mathad
Iteration Statements
• While
while(condition)
{ // body of loop
}
class While {
public static void main(String args[]) {
int n = 10;
while(n > 0) {
System.out.println("tick " + n);
n--;
}
}
}
K.S.Mathad
// The target of a loop can be empty.
class NoBody {
public static void main(String args[]) {
int i, j;
i = 100;
j = 200;
// find midpoint between i and j
while(++i < --j) ; // no body in this loop
System.out.println("Midpoint is " + i);
}
}
O/P: Midpoint is 150
K.S.Mathad
do-while
// Demonstrate the do-while loop.
class DoWhile {
public static void main(String args[]) {
int n = 10;
do {
System.out.println("tick " + n);
n--;
} while(n > 0);
}
}
K.S.Mathad
for
// Demonstrate the for loop.
class ForTick {
public static void main(String args[]) {
int n;
for(n=10; n>0; n--)
System.out.println("tick " + n);
}
}
K.S.Mathad
// Test for primes.
class FindPrime {
public static void main(String args[]) {
int num;
boolean isPrime = true;
num = 14;
for(int i=2; i <= num/2; i++) {
if((num % i) == 0) {
isPrime = false;
break;
}
}
if(isPrime) System.out.println("Prime");
else System.out.println("Not Prime");
}
}
K.S.Mathad
Using the Comma
// Using the comma.
class Comma {
public static void main(String args[]) {
int a, b;
for(a=1, b=4; a<b; a++, b--) {
System.out.println("a = " + a);
System.out.println("b = " + b);
}
}
}
K.S.Mathad
..........
.........
........
.......
......
.....
....
...
..
.
K.S.Mathad
Nested Loops
// Loops may be nested.
class Nested {
public static void main(String args[]) {
int i, j;
for(i=0; i<10; i++) {
for(j=i; j<10; j++)
System.out.print(".");
System.out.println();
}
}
}
K.S.Mathad
This program generates the following output:
Pass 0: 0 1 2 3 4 5 6 7 8 9
Pass 1: 0 1 2 3 4 5 6 7 8 9
Pass 2: 0 1 2 3 4 5 6 7 8 9
Loops complete.
K.S.Mathad
// Jump Statements Using break with nested loops.
class BreakLoop3 {
public static void main(String args[]) {
for(int i=0; i<3; i++) {
System.out.print("Pass " + i + ": ");
for(int j=0; j<100; j++) {
if(j == 10) break; // terminate loop if j is 10
System.out.print(j + " ");
}
System.out.println();
}
System.out.println("Loops complete.");
}
}
K.S.Mathad
Using continue
// Demonstrate continue.
class Continue {
public static void main(String args[]) {
for(int i=0; i<10; i++) {
System.out.print(i + " ");
if (i%2 == 0) continue;
System.out.println("");
}
}
}
K.S.Mathad
01
23
45
67
89
K.S.Mathad
return
// Demonstrate return.
class Return {
public static void main(String args[]) {
boolean t = true;
System.out.println("Before the return.");
if(t) return; // return to caller
System.out.println("This won't execute.");
}
}
K.S.Mathad