100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > switch case穿透Java_Java switch的用法与case的穿透现象举例详解

switch case穿透Java_Java switch的用法与case的穿透现象举例详解

时间:2020-07-01 16:44:20

相关推荐

switch case穿透Java_Java switch的用法与case的穿透现象举例详解

switch和if-else的用法类似:

if(x == 3) {

}else if(x == 30) {

}else if(x == -6) {

}else {

}等同于switch的:

switch(x) {

case 3:

break;

case 30:

break;

case -6:

break;

default:

}

如果switch的case中不包含break,则即使运行了某个case中的代码,仍会检测其他case并一直运行到最后。

switch parameter的数据类型:

switch(int, short, byte, char, string){}

switch example: AgeCalculator.java

import javax.swing.JOptionPane;

import java.util.Calendar;

public class AgeCalculator {

private static int daysSince_01_01_1900(int month, int date, int year) {

int days = (int)((year - 1900) * 365.25);

switch(month) {

case 12:

days += 30;

case 11:

days += 31;

case 10:

days += 30;

case 9:

days += 31;

case 8:

days += 31;

case 7:

days += 30;

case 6:

days += 31;

case 5:

days += 30;

case 4:

days += 31;

case 3:

days += (year % 4 == 0)? 29 : 28;

case 2:

days += 31;

}

days += date;

return days;

}

public static void main(String[] args) {

String birthday = JOptionPane.showInputDialog("Enter your birthday (MM/DD/YYYY): ");

int birthMonth = Integer.parseInt(birthday.substring(0, 2));

int birthDay = Integer.parseInt(birthday.substring(3, 5));

int birthYear = Integer.parseInt(birthday.substring(6, 10));

Calendar calendar = Calendar.getInstance();

int todayMonth = calendar.get(Calendar.MONTH) + 1; // returns 0 for January!

int todayDay = calendar.get(Calendar.DAY_OF_MONTH);

int todayYear = calendar.get(Calendar.YEAR);

int todayDays = daysSince_01_01_1900(todayMonth, todayDay, todayYear);

int birthdayDays = daysSince_01_01_1900(birthMonth, birthDay, birthYear);

int ageDays = (todayDays - birthdayDays);

System.out.println("You are " + ageDays + " days old.");

System.out.println("That is " + ageDays * 24 * 60 * 60 + " seconds!");

}

}输入为:

02/27/1998

输出为:

You are 7244 days old.

That is 625881600 seconds!

switch中代码相同的case是可以归并的,类似于在if-else的Boolean中使用"||"。

example:

public class BetterSwitch {

public static void main(String[] args) {

String digitString = JOptionPane.showInputDialog("Enter a single digit.");

int digit = Integer.parseInt(digitString);

int mysteryValue = 0;

switch(digit) {

case 0:

case 4:

case 5:

case 9:

mysteryValue = 4;

break;

case 1:

case 2:

case 6:

mysteryValue = 3;

break;

case 3:

case 7:

case 8:

mysteryValue = 5;

break;

default:

throw new RuntimeException("Illegal Value: " + digit);

}

System.out.println("Mystery value is " + mysteryValue);

}

}以上代码就等同于:

import javax.swing.JOptionPane;

public class PlainSwitch {

public static void main(String[] args) {

String digitString = JOptionPane.showInputDialog("Enter a single digit.");

int digit = Integer.parseInt(digitString);

int mysteryValue = 0;

switch(digit) {

case 0:

mysteryValue = 4;

break;

case 1:

mysteryValue = 3;

break;

case 2:

mysteryValue = 3;

break;

case 3:

mysteryValue = 5;

break;

case 4:

mysteryValue = 4;

break;

case 5:

mysteryValue = 4;

break;

case 6:

mysteryValue = 3;

break;

case 7:

mysteryValue = 5;

break;

case 8:

mysteryValue = 5;

break;

case 9:

mysteryValue = 4;

default:

throw new RuntimeException("Illegal value: " + digit);

}

System.out.println("Mystery value is " + mysteryValue);

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。