JAVA入门级教学之(switch语句)
/*
关于switch语句(我称为匹配语句):
1.switch语句也属于选择结构,也是分支语句
2.switch语句的语法结构:
一个比较完整的switch语句应该这样编写:
//case有匹配的意思,相当于拿数据匹配,拿数据匹配
//case穿透现象,意思是当break不存在的时候,即使第一个不匹配,也会一直按顺序往下面匹配,直到遇见break;跳出结构体
switch(int和String类型的字面值或变量){
case int和String类型的字面值或变量:
Java语句;
Java语句;
break;
case int和String类型的字面值或变量:
Java语句;
Java语句;
break;
default:
java语句;
}
3.switch语句的执行原理:
switch后面小括号中的"数据"和case后面的"数据"进行一一匹配,匹配成功的分支执行。
4.匹配成功的分支执行,分支中最后面有"break;"语句的话,整个switch语句都会终止。
5.匹配成功的分支执行,分支当中没有"break;"语句的话,直接进入下一个分支执行(不进行匹配的时候),
这种现象被称为case穿透现象【意思是提供break;语句可以避免穿透】
6.所有分支都没有匹配成功,当有default的语句,会执行default分支当中的程序。
7.switch后面括号内和case后面只能是int或者是String类型的数据,不能是探测其它类型的数据。
*当然byte,short,char也可以直接写在switch和case后面,因它们可以进行自动类型转换。
*JDK6低版本的,switch和case后面只能探测int类型。
8.case可以合并
int i=10;
switch(i){
case 1:case2:case3:case10:
}
*/
public class switch01
{public static void main(String[] args){
/*数值类型错误,大容量向小容量转换需要强制转换
//编译报错long a=10L;int b=a;long x=10L;switch(x){}
*///解决编译报错
//实际上是进行一次强制转换
long x=100L;
switch((int) x){}//同样
byte b=10;
switch(b){}short s=10;
switch(s){}//string类型
String uesrname="zansan";
swtich(username){}//关于case穿透
/*
需求:接受用户的输入
1表示星期一,以此类推
*/java.util.Scanner s=new java.util.Scanner(System.in);
System.out.print("请输入数字");
int num=s.nextInt();
switch(num){
case 1:System.out.println("星期一");break;//当break;不存在的时候,输入1,会显示星期一和星期二//虽然输入1没有匹配下面的2,但是会执行2
case 2:System.out.println("星期二");break;
case 3:System.out.println("星期三");break;
case 4:System.out.println("星期四");break;
case 5:System.out.println("星期五");break;
case 6:System.out.println("星期六");break;
case 7:System.out.println("星期日");break;
default;System.out.println("对不起,您输入的数字错误");
}//switch确实可以探测String类型,这是java7的新特性//例如:
java.util.Scanner s=new java.util.Scanner(System.in);System.out.println("请输入今天星期几");String dayWeek=s.next();//从此处检测switch(dayWeek){case"星期一":System.out.println(1);
case"星期二":System.out.println(2);
case"星期三":System.out.println(3);
default:System.out.println("不合法");}//用switch实现计算机中的+-* /%
/*实现思路:1.选择所有数据从键盘输入2.使用switch语句进行判断3.需要从控制台输入三次:*第一个数字*运算符*第二个数字最终在控制台上是这样的一个场景:欢迎使用计算机请输入第一个数字:10请输入运算符:+-* / %请输入第二个数字:20运算结果:10+20=30*/
java.util.Scanner s=new java.util.Scanner(System.in);
System.out.println("请输入第一个数字");
int a=s.nextInt();
System.out.println("请输入一个运算符");
String b=s.next();
System.out.println("请输入第二个数字");
int c=s.nextInt();int result=0;switch(b){case "+":result=a+c;break;case "-":result=a-c;break;case "*":rusult=a*c;break;case "/":result=a/c;break;case "%":result=a%c;break;default:System.out.println("输入非法");System.out.println("运算结果:"+a+b+c+"="+result);}}
}
JAVA入门级教学之(switch语句)相关推荐
- JAVA入门级教学之(package和import)
目录 JAVA入门级教学之(package和import) 1.包又称为package 2.怎么定义package? 3.包名的命名规范: 4.包名要求全部小写,包名也是标识符,必须遵守标识符的命名规 ...
- JAVA入门级教学之(方法-1)
目录 JAVA入门级教学之(方法-1) 1.以下程序不使用"方法",分析一下程序会存在哪些优缺点? 2.方法的本质:是一段代码片段,可以完成特定功能,可以重复利用 3.注意:方法定 ...
- Java SE 12扩展Switch语句/表达式完整指南
本文提供了Java SE 12扩展Switch语句/表达式的完整指南.文章详细介绍了扩展Java switch语句将其用作增强版switch语句或表达式.为帮助理解本文提供了具体案例. 本文要点 现在 ...
- JAVA入门级教学之(接口)
目录 JAVA入门级教学之(接口) 接口也是一种引用类型,可以等同看做类 1.如何定义接口,语法: 2.接口中只能出现: 3.接口其实是一个特殊的抽象类,特殊在接口是完全抽象的 4.接口中没有构造方法 ...
- JAVA入门级教学之(abstract抽象类)
目录 JAVA入门级教学之(abstract抽象类) 1.如何定义抽象类? 2.抽象类无法被实例化 3.虽然抽象类没有办法实例化,但是抽象类也有构造方法,该构造方法是给子类创建对象用的 4.抽象类中可 ...
- JAVA入门级教学之(super关键字)
目录 JAVA入门级教学之(super关键字) 1.super关键字用在构造方法中: 2.语法规则: 3.注意:super();的调用只能放在构造方法的第一行,和this();的调用规则一样 4.通过 ...
- JAVA入门级教学之(多态)
JAVA入门级教学之(多态) 怎么理解多态:你本身就该喊你爹叫爹,你让你爹叫你爹就是强制认做爹 多态的使用: A a = new D(); D类继承A类,父类型引用指向子类型对象 * 关于java语 ...
- JAVA入门级教学之(参数传递)
JAVA入门级教学之(参数传递) 问题引入: 参数分为形式参数还有实际参数,我们传入是的数据到底是什么呢? 方法调用的时候,涉及参数传递的问题, 传递的时候,java只遵循一种语法机制 就是将变量中保 ...
- JAVA入门级教学之(面向过程和面向对象的区别)
目录 JAVA入门级教学之(面向过程和面向对象的区别) 面向过程和面向对象的区别: -面向过程: -面向对象: -发展历程: -生命周期中包括: -什么是类: -什么是对象: -软件开发的过程: -重 ...
- JAVA入门级教学之(方法递归)
目录 JAVA入门级教学之(方法递归) 1.关于方法的递归调用: 2.递归是很耗费栈内存的,递归算法可以不用的时候尽量别用 3.以下程序运行的时候发生了这样的一个错误[不是异常,是错误] 4.递归必须 ...
最新文章
- 总奖金200万的算法赛方案汇总!
- 一行代码卖出 570 美元, 天价代码的内幕
- “防爆”与“防暴” 这两种摄像机差别在哪?
- 网站百度索引量受哪些因素影响呢?
- C#interface定义及使用浅析
- Dubbo环境搭建-管理控制台dubbo-admin实现服务监控
- 2013第四届蓝桥杯Java组省赛题解析
- 关于python安装lxml插件的问题
- 【渝粤题库】国家开放大学2021春2718动物生理基础题目
- java图片上传并解析,详解SpringMVC实现图片上传以及该注意的小细节
- axure 教务系统_AxureRP免费(教育)授权密钥申请攻略
- 只需45秒,Python 给故宫画一组手绘图!
- 模拟科目二侧方位停车训练
- 2行Python给图片加水印,太强了!
- TesterHome android app 编写历程(五)
- 怀化学院1901班灭霸组项目设计博文
- 动网论坛php源码无法安装,轻松搞定动网论坛与网站的整合
- HP打印机常见故障维修资料
- python汽车租赁
- 易语言 剪切板 html,易语言剪切板操作源码
热门文章
- 祝各位网友儿童节快乐!
- 牛客 13822 Keep In Line(枚举与暴力、Python)
- 查看屏幕大小_疑似“iPhone 12” 的OLED屏幕组件泄露
- 中柏平板u盘启动_中柏电脑如何设置BIOS U盘启动
- 体育测试数据绘图软件,原创健身运动体育测试数据统计app界面
- 信阳农林技术学院经纬度_信阳无人机创业团队:让梦想在田野起飞
- 大一新生计算机课word知识,大学新生计算机基础分层考试结果探析与启发.doc
- OpenCV与图像处理学习十——区域生长算法(含代码)
- Python 的垃圾回收回收机制(源码)
- cocos2dx实现经典飞机大战