In this tutorials we are going to see old switch statement and new switch statement in java which support String argument.
Previous versions of java was not supported String in switch statement.To achieve this functionality we go for if-else statement.The ability to switch on string is now supported and produce more efficient bytecode than if-else statement
Examples of old switch statement and if-else statement and String to switch to achieve the same result of if-else in more efficient way is given below
Old switch Statement
switch statement on integer value
package com.javatutorialscorner.java7.switchcase;
public class OldSwitchStatement {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("First Call : " + getWeek(2));
System.out.println("Second Call : " + getWeek(5));
System.out.println("Default Call : " + getWeek(0));
}
public static String getWeek(int day) {
String week;
switch (day) {
case 1:
week = "Sunday";
break;
case 2:
week = "Monday";
break;
case 3:
week = "Tuesday,";
break;
case 4:
week = "Wednesday";
break;
case 5:
week = "Thursday,";
break;
case 6:
week = "Friday";
break;
default:
week = "Saturday";
break;
}
return week;
}
}
output
if-elseif-else statement
First Call : Monday
Second Call : Thursday,
Default Call : Saturday
package com.javatutorialscorner.java7.switchcase;
public class IfElseIf {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(getLanguage("java"));
System.out.println(getLanguage("html"));
System.out.println(getLanguage(""));
}
public static String getLanguage(String lang) {
String result;
final String JAVA = "java";
final String HTML = "html";
final String CPP = "c++";
if (lang == null) {
return "null value";
}
if (lang.equals(JAVA)) {
result = "This is Java";
} else if (lang.equals(HTML)) {
result = "This is HTML";
} else if (lang.equals(CPP)) {
result = "This is C++";
} else {
result = "Language not found";
}
return result;
}
}
output
This is Java
This is HTML
Language not found
New switch statement
package com.javatutorialscorner.java7.switchcase;
public class NewSwitchStatement {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(getLanguage("java"));
System.out.println(getLanguage("html"));
System.out.println(getLanguage(""));
}
public static String getLanguage(String lang) {
String result;
final String JAVA = "java";
final String HTML = "html";
final String CPP = "c++";
if (lang == null) {
return "null value";
}
switch (lang) {
case JAVA:
result = "This is Java";
break;
case HTML:
result = "This is HTML";
break;
case CPP:
result = "This is C++";
break;
default:
result = "Language not found";
break;
}
return result;
}
}
output
In above code if condition is used to avoid null pointer expression.
This is Java
This is HTML
Language not found
The switch statement compare the string object in its expression with the expressions associated with each case label .The Java compiler generates more efficient byte code from switch statements that use String objects than from chained if- else statement.
0 comments:
Post a Comment