文章目录
1.switch-case
switch(;表达式){
case 常量1:
执行语句1;
break;(根据实际情况添加)
case 常量2;
执行语句2;
break;(根据实际情况添加)
default;
breat;
}
说明:
1)根据switch表达式中的值,依次匹配各个case中的常量。一旦匹配成功,则进入相应case结构中,调用其执行语句。当调用完执行语句以后,则仍然继续向下执行其他case结构中的执行语句,直到遇到break关键字或此switch-case结构末尾结束为止。
2)break ,可以使用在switch-case结构中,表示一旦执行到此关键字,就跳出switch-case结构
3)switch结构中的表达式,只能是如下的6种数据类型之一:byte、short、int、char、枚举类型(jdk1.5新增)、String类型(jdk1.7新增)
4)case只能声明常量,不能声明范围。
5)break关键字是可选
6)default关键字相当于if-else中的else,default是可选,位置是灵活的
class SwitchCase{
public static void main(String[] args){
int number=2;
switch(number){
case 0:
System.out.print("zero");
case 1:
System.out.print("one");
case 2:
System.out.print("two");
case 3:
System.out.print("three");
default:
System.out.print("default");
}
}
}
class SwitchCase{
public static void main(String[] args){
int number=1;
switch(number){
case 0:
System.out.print("zero");
break;
case 1:
System.out.print("one");
break;
case 2:
System.out.print("two");
break;
case 3:
System.out.print("three");
break;
default:
System.out.print("default");
break;
}
}
}
2.练习
1.使用switch-case把小写类型的char转换为大小写。只转换a,b,c,d,e, 其他的输出other
提示:String wold=scan.next():
char c=word.charAt(0);
switch©{
}
小写比大写多32
import java.util.Scanner;
public class SwitchTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入a~e的小写字母:");
String word= sc.next();
char c= word.charAt(0);//读取第1个字符并强制转换为char类型
switch(c){
case 'a':
System.out.println(c -= 32);
break;
case 'b':
System.out.println(c -= 32);
break;
case 'c':
System.out.println(c -= 32);
break;
case 'd':
System.out.println(c -= 32);
break;
case 'e':
System.out.println(c -= 32);
break;
default:
System.out.println("other");
}
}
}
注意:1) 读取第一个字符转换为char类型 char c=word.charAt(0);
2) 小写比大写多32
2.对学生成绩大于60分的,输出”合格“,低于60分的,输出“不合格”
import java.util.Scanner;//
class TestSwsitch2{
public static void main(String[] args){
Scanner s = new Scanner(System.in);//
System.out.println("请输入您的成绩");//
int score= s.nextInt();
switch(score/10){
case 0:
System.out.println("不及格");
case 1:
System.out.println("不及格");
break;
case 2:
System.out.println("不及格");
case 3:
System.out.println("不及格");
case 4:
System.out.println("不及格");
case 5:
System.out.println("不及格");
case 6:
System.out.println("及格");
case 7:
System.out.println("及格");
case 8:
System.out.println("及格");
case 9:
System.out.println("及格");
case 10:
System.out.println("及格");
break;
default:
System.out.println("输入有误");
break;
}
}
}
import java.util.Scanner;//
class TestSwsitch2{
public static void main(String[] args){
Scanner s = new Scanner(System.in);//
System.out.println("请输入您的成绩");//
int score= s.nextInt();
switch(score/60){
case 0:
System.out.println("不及格");
break;
case 1:
System.out.println("及格");
break;
default:
System.out.println("输入有误");
break;
}
}
}
考虑:分数除以10,60后case的分类
3.根据用于指定月份,打印该月份所属的季节,3,4,5春季6,7,8夏季,9,10,11秋季,12,1,2冬季
import java.util.Scanner;
public class TestSwsitch3{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.print("请输入月份:");
int month = sc.nextInt();
switch(month){
case 3 :
case 4 :
case 5 :
System.out.println(month + "月为春季");
break;
case 6 :
case 7 :
case 8 :
System.out.println(month + "月为夏季");
break;
case 9 :
case 10 :
case 11 :
System.out.println(month + "月为秋季");
break;
case 12 :
case 1 :
case 2 :
System.out.println(month + "月为冬季");
break;
default :
System.out.println("输入月份错误!");
}
}
}
4.编写程序,从键盘上输入2019年的“month”和day,要求通过程序输出输入的日期为2019年的第几天
import java.util.Scanner;
class SwitchTest02{
public static void main(String[] args){
Scanner sc= new Scanner(System.in);
System.out.println("请输入2019的月:");
int month = sc.nextInt();
System.out.println("请输入日:");
int day = sc.nextInt();
int sumDays = 0;
switch (month){
case 12:
sumDays += 30;
case 11:
sumDays +=31;
case 10:
sumDays += 30;
case 9:
sumDays += 31;
case 8:
sumDays += 31;
case 7:
sumDays += 30;
case 6:
sumDays += 31;
case 5:
sumDays += 30;
case 4:
sumDays += 31;
case 3:
sumDays += 28;
case 2:
sumDays += 31;
case 1:
sumDays += day;
}
system.out.print("2019年"+month+"月"+day+"日是当年的"+sumDays+"天");
}
}
考虑:
case中的break关键字是可选,此处的逻辑思路是12月份倒着写
5.从键盘上分别输入年、月、日,判断这一天是当年的第几天
注:判断一年是否是闰年的标准
1)可以被4整除,但不可以被100整除或
2)可以被400整除
import java.util.Scanner;
class SwitchTest03{
public static void main(String[] args){
Scanner sc= new Scanner(System.in);
System.out.println("请输入年:");
int year = sc.nextInt();
System.out.println("请输入月:");
int month = sc.nextInt();
System.out.println("请输入日:");
int day = sc.nextInt();
int sumDays = 0;
switch (month){
case 12:
sumDays += 30;
case 11:
sumDays +=31;
case 10:
sumDays += 30;
case 9:
sumDays += 31;
case 8:
sumDays += 31;
case 7:
sumDays += 30;
case 6:
sumDays += 31;
case 5:
sumDays += 30;
case 4:
sumDays += 31;
case 3:
if((year%4==0&&year%100!=0)||year%400==0){
sumDays+=29;
}else{
sumDays+=28;
}
case 2:
sumDays += 31;
case 1:
sumDays += day;
}
System.out.print(year+"年"+month+"月"+day+"日是当年的"+sumDays+"天");
}
}