Module-5B
Java Statements: Controlling which section of the code should be executed. You can have condition and then execute it.
If Statement: Conditional Code execution.
public class Welcome {
public static void main(String[] args) {
int i=10;
int y=5;
if(i>y){
System.out.println("Print 1 : Here I > Y ");
y=11;
}
System.out.println("Print 2 : Value of I = " + i + " Value of Y = " + y);
if(y>i){
System.out.println("Print 3 : Here Y > I ");
}
//Code will never enter in if condition block as it is always evaluated to false.
if(i>y){
System.out.println("Print 4 : Print Here I > Y ");
y=11;
}
if(y>i)
System.out.println("Print 5 : Here Y > I ");
System.out.println("Print 6 : End of Program");
}
}
If-else statement: Conditional code branching.
public class Welcome {
public static void main(String[] args) {
int i=10;
int y=5;
if(i>y){
System.out.println("Print 1 : Here I > Y ");
y=11;
System.out.println("Print 2 : Value of I = " + i + " Value of Y = " + y);
}
else if(y>i){ //This else block will never be executed. Even condition is true.
System.out.println("Print 3 : Here Y > I ");
}
//Code will never enter in if condition block as it is always evaluated to false.
if(i>y){
System.out.println("Print 4 : Print Here I > Y ");
y=11;
}
else
System.out.println("Print 5 : Here Y > I ");
//Code will never enter in if condition block as it is always evaluated to false.
if(i>y){
System.out.println("Print 6 : Print Here I > Y ");
y=11;
}
else if(y>i)
System.out.println("Print 7 : Here Y > I ");
/*if(int val=5){ //Will not compile
System.out.println("Print 8 ");
}*/
System.out.println("Print 9 : End of Program");
}
}
Ternary Operator: (? : ) : This can work on up to three expression. It is equivalent to if-then-else block.
(Always a Boolean expression) ? (If Boolean expression is true then this section) : (if Boolean expression is false then this section)
public class Welcome {
public static void main(String[] args) {
//if then else example
int y = 20;
int x = 0;
if (y > 5) {
x = 3 * y;
} else {
x = 4 * y;
}
System.out.println("Value of x = " + x + " Value of y = " + y);
//Ternary operator
y=20;
x=0;
int result = (y>5) ? x= 3*y : 4*y;
System.out.println("Value of x = " + x + " Value of y = " + y + " And result = " + result);
//Behaves like short circuit operator
int val1 = 1;
int val2 = 1;
final int val3 = val2<2 ? val1++ : val2++;
System.out.println(val1+","+val2+ ","+ val3); // Outputs 2,1,1
}
}
switch operator: Complex decision making statement.
- is a complex decision-making structure in which a single value is evaluated and fl ow is redirected to the first matching branch (case statement
)
- If no such case statement is found that matches the value, an optional default statement will be called.
- If no such default option is available, the entire switch statement will be skipped.
- Data type of switch value and case value should be same.
- In each case, you must have break; statement.
- Even though the default block was before the case block, only the case block was executed.
- default is only branched to if there is no matching case value for the switch statement, regardless of its position within the switch statement.
- the case statement value must also be a literal, enum constant, or final constant variable.
public class Welcome {
public static void main(String[] args) {
int monthVal=Integer.parseInt(args[0]);
//Also try with removing break statement.
switch(monthVal){
case 1 :
System.out.println("Jan");
break;
case 2 :
System.out.println("Feb");
break;
case 3 :
System.out.println("Mar");
break;
case 4 :
System.out.println("Apr");
break;
default:
System.out.println("No proper month value");
case 5 :
System.out.println("May");
break;
}
}
}
public class Welcome {
public static void main(String[] args) {
String sitename = "HadoopExam";
String www = "www.";
String name = "HadoopExam";
String com = ".com";
int value = 0;
switch (name) {
case "Hadoop":
break;
case sitename:
value = 1;
break;
case www:
value = 2;
break;
case com:
value = 3;
break;
case 5000: // DOES NOT COMPILE
value = 4;
break;
case 'H': // DOES NOT COMPILE
value = 5;
break;
case Welcome.class: // DOES NOT COMPILE
value = 6;
break;
}
}
}
while statement: (it is also known as while loop)
- Infinite while loop
public class Welcome {
public static void main(String[] args) {
while(true){
System.out.println("I am learning Java from HadoopExam.com");
}
}
}
- Controlled while loop
public class Welcome {
public static void main(String[] args) {
int i = 0;
while (i < 10) {
System.out.println("I am learning Java from HadoopExam.com value of i " + i);
i++;
}
while (i > 10) { //will not pass this condition
System.out.println("I am learning Java from HadoopExam.com value of i " + i);
i++;
}
int j=5;
while (i > 10 || j<10) {
System.out.println("I am learning Java from HadoopExam.com value of i " + i + " And value of j " + j);
j++;
}
while (i < 11 || j<10) { //Infinite loop
System.out.println("I am learning Java from HadoopExam.com value of i " + i + " And value of j " + j);
j++;
//if(j>2000) //uncomment and test again
//break;
}
}
}
do-while loop
- a do-while loop guarantees that the statement or block will be executed at least once.
- It is your choice, which one to use while or do-while.
- It is recommended you use while.
public class Welcome {
public static void main(String[] args) {
int i = 0;
do {
i++;
} while (false);
System.out.println(i);
}
}
for statement : another controlled looping.
public class Welcome {
public static void main(String[] args) {
for(int i=0; i<10; i++){
int j=0;
System.out.println("Value of i = " + i + "Value of j = " + j++);
}
//Both i and j are local variable
//System.out.println("Value of J" + j); // j will not be available here.
//System.out.println("Value of i" + i); // i will not be available here.
}
}
Infinite for loop
public class Welcome {
public static void main(String[] args) {
for( ; ; ) {
System.out.println("Welcome to HadoopExam.com");
}
}
}
public class Welcome {
public static void main(String[] args) {
for( int i=0, j=0; i<10 && j<10 ; ) {
System.out.println("Value of i " + i + " Value of j " + j);
i++; j++;
}
}
}
Below code will not compile: Because you are trying re-initialize the j
public class Welcome {
public static void main(String[] args) {
int j=0;
for( int i=0, j=4; i<10 && j<10 ; ) {
System.out.println("Value of i " + i + " Value of j " + j);
i++; j++;
}
}
}
Incompatible data type in initialization block:
public class Welcome {
public static void main(String[] args) {
// This code will not compile. As you can not use different data type.
for(long y = 0, int x = 1; x < 5 && y<10; x++, y++) {
System.out.print(x + " ");
}
}
}
for each statement : (It is added only in Java 5.0)
for(datatype instance : collection/array)
- Collection/array must be iterable : an object whose class implements java.lang.Iterable
public class Welcome {
public static void main(String[] args) {
int i = 0;
for (char c : "HadoopExam".toCharArray()) {
System.out.println(c);
}
}
}
- Array of strings example
public class Welcome {
public static void main(String[] args) {
int i = 0;
for (String siteName : args) {
System.out.println(siteName);
}
}
}
- Iterating over list
import java.util.ArrayList;
import java.util.List;
public class Welcome {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("HadoopExam.com");
list.add("QuickTechie.com");
list.add("Training4Exam.com");
for (String siteName : list) {
System.out.println(siteName);
}
}
}
- For-each loop is just an compile time enhancements. Once code is compiled java internally convert it into normal for loop.
Nested Loops : Loop inside loop.
public class Welcome {
public static void main(String[] args) {
for(int i=0; i<5;i++){
for(int j=0;j<3;j++){
System.out.println("Value of i = " + i + " Value of j = " + j);
}
}
}
}
Formatted output of nested loops.
public class Welcome {
public static void main(String[] args) {
for(int i=0; i<5;i++){
for(int j=0;j<3;j++){
System.out.print(i+","+j + "\t");
}
System.out.println();
}
}
}
break statement : Break the loop and come out of the loop
- You can use in any loop this break statement while, for, for-each, do-while etc.
public class Welcome {
public static void main(String[] args) {
int j=0;
for(int i=0; i<5;i++){
System.out.println("Value of i " + i);
j++;
if(j>3)
{
break;
}
}
}
}
continue statement :
public class Welcome {
public static void main(String[] args) {
int j=0;
for(int i=0; i<5;i++){
j++;
if(j==3)
{
continue;
}
System.out.println("Value of i " + i + " Value of j " + j);
}
}
}
public class Welcome {
public static void main(String[] args) {
int j=0;
for(int i=0; i<5;i++){
if (i<3){
continue;
}
System.out.println("Inside while loop : value of i = " + i);
}
}
}
- While the break statement transfers control to the enclosing statement
- the continue statement transfers control to the boolean expression that determines if the loop should continue. it ends the current iteration of the loop.
public class Welcome {
public static void main(String[] args) {
FIRST_LOOP: for (int count = 1; count <= 4; count++) {
for (char seq = 'a'; seq <= 'c'; seq++) {
if (count == 2 || seq == 'b')
continue FIRST_LOOP;
System.out.print(" " + count + seq);
}
}
}
}