编程语言
首页 > 编程语言> > java基础语法之switch-case

java基础语法之switch-case

作者:互联网

java基础语法之switch-case

/*
分支结构之二:switch-case
1、格式
switch(表达式){
case 常量1:
执行语句1;
//break;

case 常量2:
执行语句2;
//break;
……
default:
执行语句n;
//break;
}
说明:
①根据switch表达式中的值,依次匹配各个case中的常量。一旦匹配成功,则进入相应case结构中,调用其执行语句。
当调用完执行语句以后,则仍然继续向下执行其他case结构中的执行语句,
直到遇到break关键字或此switch-case结构末尾结束为止。
②break,可以使用在switch-case结构中,表示一旦执行到此关键字,就跳出switch-case结构。
③switch结构中的表达式,只能是如下的6种数据结构之一:byte\short\char\int\枚举类型(jdk5.0新增)\String(jdk7.0新增)
④case之后只能声明常量。不能声明范围。
⑤break关键字是可选的。
⑥default:相当于if-else结构中的else类似,default结构是可选的,而且位置是灵活的。
*/

import java.util.Scanner;
class SwitchCaseTest {
public static void main(String[] args)
{
int number=2;
switch(number){

	case 0:
		System.out.println("zero");
		break;
	case 1:
		System.out.println("one");
		break;
	case 2:
		System.out.println("two");
		break;
	case 3:
		System.out.println("three");
		break;
	
	default:
		System.out.println("four");
		break;
	
	
	}

/*练习1:
使用switch把小写类型的char型转为大写。只转换a,b,c,d,e,其他的输出"other".
提示:String word=scan.next();char()=word.charAt(0);switch©{
*/
/*System.out.println(“请任意输入一个小写字母”);
Scanner scan=new Scanner(System.in);
String word=scan.next();
char a=word.charAt(0);
switch(a){
case ‘a’:
System.out.println(‘A’);
}
*/
/*练习2:
对学生的成绩大于60分的,输出“合格”。低于60分的,输出“不合格”。
说明:如果switch-case结构中的多个case的执行语句相同,则可以考虑进行合并。
*/
/*System.out.println(“请输入您的成绩”);
Scanner score=new Scanner(System.in);
int score1=score.nextInt();
switch(score1/10){
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println(“不合格”);
break;
case 6:
case 7:
case 8:
case 9:
case 10:
System.out.println(“合格”);
break;
}
//更优解决方案:
/switch(score1/60){
case 0:
System.out.println(“不合格”);
break;
case 1:
System.out.println(“合格”);
break;
/

//根据用于指定月份,打印该月份的所属的季节。
//3,4,5春季6,7,8夏季9,10,11秋季12,1,2冬季
/*System.out.println(“请输入现在属于几月份(用数字表示即可)”);
int season=score.nextInt();
switch(season/3){
case 1:
System.out.println(“春季”);
break;
case 2:
System.out.println(“夏季”);
break;
case 3:
System.out.println(“秋季”);
default:
System.out.println(“冬季”);
}
//编写程序:从键盘输入2019年的“month”和“day”,要求通过程序输出输入的日期为2019年的第几天。
System.out.println(“请输入2019年的month:”);
int month=score.nextInt();
System.out.println(“请输入2019年的day:”);
int day=score.nextInt();

//定义一个变量来保存总天数
/*方式一:冗余
int sumDays=0;
if(month==1){
	sumDays=day;
}else if(month==2){
	sumDays=31+day;
}else if(month==3){
	sumDays=31+28+day;
}else if(month==4){
	sumDays=31+28+31+day;
}else if(month==4){
	sumDays=31+28+31+day;
	……
else{month==12
		sumDays=……+day;
}
*/
//方式二:冗余
/*switch(month){
case 1:
	sumDays=day;
	break;
case 2:
	sumDays=31+day;
	break;
case 3:
	sumDays=31+28+day;
	break;
	……
}
*/
//说明:break在switch-case中是可选的
/*int sumDays=0;
switch(month){
case 12:
	sumDays+=31;
case 11:
	sumDays+=30;
case 10:
	sumDays+=31;
case 9:
	sumDays+=30;
case 8:
	sumDays+=31;
case 7:
	sumDays+=31;
case 6:
	sumDays+=30;
case 5:
	sumDays+=31;
case 4:
	sumDays+=30;
case 3:
	sumDays+=31;
case 2:
	sumDays+=28;
case 1:
	sumDays+=day;
}
System.out.println("2019年"+month+"月"+day+"日是当年的第"+sumDays+"天");
*/

//练习从键盘分别输入年月日,判断这一天是当年的第几天
//注:判断一年是否闰年的标准:
//1、可以被4整除,但不可被100整除或可以被400整除*/
/*Scanner scan=new Scanner(System.in);
System.out.println(“请输入year”);
int year=scan.nextInt();
System.out.println(“请输入month”);
int month=scan.nextInt();
System.out.println(“请输入day”);
int day=scan.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
//判断year是否是闰年
if(year/40&&year/100!=0||year%4000){
sumDays+=29;
}else{
sumDays+=28;
}
case 2:
sumDays+=31;
case 1:
sumDays+=day;
}
System.out.println(year+“年”+month+“月”+day+“日是当年的第”+sumDays+“天”);
*/
//说明:凡是可以使用switch-case的结构,都可以转换为if-else.反之,不成立。
//当我们写分支结构时,当发现即可以使用switch-case(同时,switch中表达式的取值情况不太多),
//又可以使用if-else时,我们优先选择switch-case.原因:switch-case执行效率稍高。

/*
循环结构:在某些条件满足的情况下,反复执行特定代码的功能
循环语句分类:for循环、while循环、do-while循环
循环语句的四个组成部分:初始化部分、循环条件部分、循环体部分、迭代部分
一、for循环的结构

for(①;②;④){

}
执行过程:①-②-③-④-②-③-④-……-②
*/
for(int i=1;i<6;i++){//i=1,2,3,4,5
System.out.println(“Hello World!”);
}
//练习
/int num=1;
for(System.out.println(‘a’);num<=3;System.out.println(‘c’),num++){
System.out.println(‘b’);
}//abcbcbc
//练习:遍历100以内的偶数,输出所有偶数的和,输出偶数的个数
int sum=0;//记录所有偶数的和
int count=0;//记录偶数的个数
for (int num1=1;num1<=100;num1++){
if(num1%2==0){
System.out.println(num1);
count++;
sum+=num1;
}
}
System.out.println(sum);
System.out.println(count);
/
//编写程序从1循环到150;并在每一行打印一个值,
//另外在每个3的倍数行上打印出“foo”,在每个5的倍数行上打印“biz”,在每个7的倍数行上打印输出“baz”
for(int num=1;num<=150;num++){
System.out.print(num+" ");
if(num%30){
System.out.print("foo ");
}
if(num%5
0){
System.out.print("biz ");
}
if(num%7==0){
System.out.print("baz ");
}
System.out.println();//换行

}
/*
1、switch后面使用的表达式可以是哪些数据类型的?
byte、short、char、int、枚举类型、string类型
2、谈谈你对三元运算符、if-else和switch-case结构使用场景的认识。

3、如何从控制台获取string和int型变量,并输出?使用代码实现
1、import java.util.Scanner;//导包,写在类的上面
2、Scanner scan=new Scanner(System.in);//实例化
3、string value=scan.next();
int value1=scan.nextInt();
4、使用for循环遍历100以内的奇数,并计算所有奇数的和并输出。
*/
int result=0;
for(int num=1;num<=100;num++){
if(num%2!=0){
System.out.println(num);
result+=num;
}
}
System.out.println(result);
}
}

标签:case,java,System,switch,sumDays,println,out
来源: https://blog.csdn.net/ghddd123/article/details/116355614