/*
     关于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语句)相关推荐

  1. JAVA入门级教学之(package和import)

    目录 JAVA入门级教学之(package和import) 1.包又称为package 2.怎么定义package? 3.包名的命名规范: 4.包名要求全部小写,包名也是标识符,必须遵守标识符的命名规 ...

  2. JAVA入门级教学之(方法-1)

    目录 JAVA入门级教学之(方法-1) 1.以下程序不使用"方法",分析一下程序会存在哪些优缺点? 2.方法的本质:是一段代码片段,可以完成特定功能,可以重复利用 3.注意:方法定 ...

  3. Java SE 12扩展Switch语句/表达式完整指南

    本文提供了Java SE 12扩展Switch语句/表达式的完整指南.文章详细介绍了扩展Java switch语句将其用作增强版switch语句或表达式.为帮助理解本文提供了具体案例. 本文要点 现在 ...

  4. JAVA入门级教学之(接口)

    目录 JAVA入门级教学之(接口) 接口也是一种引用类型,可以等同看做类 1.如何定义接口,语法: 2.接口中只能出现: 3.接口其实是一个特殊的抽象类,特殊在接口是完全抽象的 4.接口中没有构造方法 ...

  5. JAVA入门级教学之(abstract抽象类)

    目录 JAVA入门级教学之(abstract抽象类) 1.如何定义抽象类? 2.抽象类无法被实例化 3.虽然抽象类没有办法实例化,但是抽象类也有构造方法,该构造方法是给子类创建对象用的 4.抽象类中可 ...

  6. JAVA入门级教学之(super关键字)

    目录 JAVA入门级教学之(super关键字) 1.super关键字用在构造方法中: 2.语法规则: 3.注意:super();的调用只能放在构造方法的第一行,和this();的调用规则一样 4.通过 ...

  7. JAVA入门级教学之(多态)

    JAVA入门级教学之(多态) 怎么理解多态:你本身就该喊你爹叫爹,你让你爹叫你爹就是强制认做爹 多态的使用: A  a = new D(); D类继承A类,父类型引用指向子类型对象 * 关于java语 ...

  8. JAVA入门级教学之(参数传递)

    JAVA入门级教学之(参数传递) 问题引入: 参数分为形式参数还有实际参数,我们传入是的数据到底是什么呢? 方法调用的时候,涉及参数传递的问题, 传递的时候,java只遵循一种语法机制 就是将变量中保 ...

  9. JAVA入门级教学之(面向过程和面向对象的区别)

    目录 JAVA入门级教学之(面向过程和面向对象的区别) 面向过程和面向对象的区别: -面向过程: -面向对象: -发展历程: -生命周期中包括: -什么是类: -什么是对象: -软件开发的过程: -重 ...

  10. JAVA入门级教学之(方法递归)

    目录 JAVA入门级教学之(方法递归) 1.关于方法的递归调用: 2.递归是很耗费栈内存的,递归算法可以不用的时候尽量别用 3.以下程序运行的时候发生了这样的一个错误[不是异常,是错误] 4.递归必须 ...

最新文章

  1. 总奖金200万的算法赛方案汇总!
  2. 一行代码卖出 570 美元, 天价代码的内幕
  3. “防爆”与“防暴” 这两种摄像机差别在哪?
  4. 网站百度索引量受哪些因素影响呢?
  5. C#interface定义及使用浅析
  6. Dubbo环境搭建-管理控制台dubbo-admin实现服务监控
  7. 2013第四届蓝桥杯Java组省赛题解析
  8. 关于python安装lxml插件的问题
  9. 【渝粤题库】国家开放大学2021春2718动物生理基础题目
  10. java图片上传并解析,详解SpringMVC实现图片上传以及该注意的小细节
  11. axure 教务系统_AxureRP免费(教育)授权密钥申请攻略
  12. 只需45秒,Python 给故宫画一组手绘图!
  13. 模拟科目二侧方位停车训练
  14. 2行Python给图片加水印,太强了!
  15. TesterHome android app 编写历程(五)
  16. 怀化学院1901班灭霸组项目设计博文
  17. 动网论坛php源码无法安装,轻松搞定动网论坛与网站的整合
  18. HP打印机常见故障维修资料
  19. python汽车租赁
  20. 易语言 剪切板 html,易语言剪切板操作源码

热门文章

  1. 祝各位网友儿童节快乐!
  2. 牛客 13822 Keep In Line(枚举与暴力、Python)
  3. 查看屏幕大小_疑似“iPhone 12” 的OLED屏幕组件泄露
  4. 中柏平板u盘启动_中柏电脑如何设置BIOS U盘启动
  5. 体育测试数据绘图软件,原创健身运动体育测试数据统计app界面
  6. 信阳农林技术学院经纬度_信阳无人机创业团队:让梦想在田野起飞
  7. 大一新生计算机课word知识,大学新生计算机基础分层考试结果探析与启发.doc
  8. OpenCV与图像处理学习十——区域生长算法(含代码)
  9. Python 的垃圾回收回收机制(源码)
  10. cocos2dx实现经典飞机大战