发布于2021-03-13 13:42 阅读(571) 评论(0) 点赞(10) 收藏(1)
大家好!我是小崇。希望大家不吝赐教,我们互相学习,共同进步!
我们在使用选择语句时,会遇到需要从多个选项中选择其中一个的情况,这时候,我们就可以使用switch语句了。
switch语句主要实现多分支结构,一般格式如下:
switch (expression){
case value1;
statements
break;
case value2;
statements
break;
case value3;
statements
break;
.
.
.
case valuen;
statements
break;
[default:
statements]
}
在上面是示例代码中的expression是一个表达式,expression的值必须是byte类型、short类型、int 类型、char类型 、enum类型、或者String类型。
其中,case子句是用来设定某种情况的,后面的值必须是与表达式值类型相容。程序进入switch结构后,先计算expression的值,然后用该值依次与每个case中的常量(或常量表达式)的值进行比较,如果等于某值,则执行case子句中后面的语句,直到遇到break语句为止。
break语句的功能是退出switch结构。如果在某种情况之下处理结束后就离开switch结构,则必须在该case结构的后面加上break语句。
default语句是可选的,当表达式的值与每个case子句中的值都不匹配时,就执行default后的语句。如果表达式的值与每个case子句中的值都不匹配,且也没有default子句,则该程序不执行任何操作,直接跳出switch结构,执行后面的语句。
下面我们来看一个案例:键盘输入某年份及某月份,输出该月天数。
案例效果图:
Java代码:
import java.util.Scanner;
public class SwitchDemo {
public static void main(String[] args) {
Scanner input = new Scanner (System.in);
System.out.print("请输入一个年份:");
int year = input.nextInt();
System.out.print("请输入一个月份:");
int month = input.nextInt();
int numDays = 0;
switch (month) {
case 1: case 3: case 5:
case 7: case 8: case 10:
case 12:
numDays = 30;
break;
case 4: case 6: case 9: case 11:
numDays = 30;
break;
case 2: //对2月份进行判断,看其是否是闰年
if (((year % 4 == 0) && !(year % 100 == 0)) || (year % 400 == 0))
numDays = 29;
else
numDays = 28;
break;
default:
System.out.println("月份非法.");
break;
}
System.out.println("该月的天数为:" + numDays);
}
}
小结:
1.由于Java的版本不同,从Java SE7开始就课可以在switch语句中使用String对象。
2.我们从判断月份案例基础上,如果想做一个用英文输入月份名判断月份的案例,又应该如何编写呢?这时就需要运用在switch语句中使用String对象的操作了。
案例效果图:
参考代码:
import java.util.Scanner;
public class SwitchDemo {
public static void main(String[] args) {
String month = "";
int monthNumber = 0;
Scanner input = new Scanner (System.in);
System.out.println("请用英语输入一个月份:");
month = input.next();
switch(month.toLowerCase()) {
case "january":monthNumber = 1; break;
case "february":monthNumber = 2; break;
case "march":monthNumber = 3; break;
case "april":monthNumber = 4; break;
case "May":monthNumber = 5; break;
case "june":monthNumber = 6; break;
case "july":monthNumber = 7; break;
case "august":monthNumber = 8; break;
case "september":monthNumber = 9; break;
case "october":monthNumber = 10; break;
case "novemeber":monthNumber = 11; break;
case "december":monthNumber = 12; break;
default:
monthNumber = 0; break;
}
if (monthNumber == 0) {
System.out.println("输入的月份名称非法");
}else {
System.out.println(month + "是" + monthNumber + "月");
}
}
}
其中,mont.toLowerCase()是将字符串转化为小写字符串,switch表达式中的字符串要与每个case中的字符进行比较。
作者:咿呀咿呀哟
链接:http://www.javaheidong.com/blog/article/114260/796d685a7ea6274b97cf/
来源:java黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 java黑洞网 All Rights Reserved 版权所有,并保留所有权利。京ICP备18063182号-2
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!