主页 > 创业  > 

Java的switch

Java的switch
switch分支结构 - 基本语法:     switch(表达式){         case 常量1://当……         语句块1;【只要说明是语句块就可能是一个语句或者多条语句】         break;         case 常量2:         语句块2;         break;         ……(以此类推,可以写多个)         case 常量n:         语句块n;         break;         defult:【defult后面用的是冒号!分号】         defult语句块;         break; - 说明   1.switch关键字,表示switch分支   2.表达式,对应一个值(运行之后必定是一个固定的值)   3.case 常量1 :当表达式的值等于常量1 就执行语句块1   4. break : 表示推出switch   5.如果和case常量1 匹配,就执行语块1 如果没有匹配 就继续匹配 case 常量2   6.如果一个都没有匹配上 执行default - 注意事项和细节讨论   1 表达式数据类型 应该和case 后的常量类型保持一致 或者是可以自动转化成相互比较的类型     比如: 输入的是字符 而常量是 int 【Java数据类型】     - 基本数据类型         - 数值型             - 整数型 存放整数                 byte short int long             - 浮点(小数)类型                 float(单精度) double(双精度)         - 字符型 char 存放单个字符         - 布尔型 Boolean 存放true false     - 引用数据类型         - 类 class         - 接口 interface         - 数组[] 【基本数据类型转换】: 精度小的可以自动转换为精度大的[自动转换]     - 规则[只能按规则顺序转换]         char->int->long->float->double         byte->short->int->long->float->double     - 注意和细节         1 有多种类型的数据混合运算时 系统首先自动将所有数据转换成容量最大的那种数据类型 然后在进行计算         2 当我们把精度(容量)大的数据类型赋值给精度(容量)小的数据类型则会报错 反之就会进行自动类型转换         3 byte short和char 之间不会相互自动转换         4 byte short char 他们三者可以计算 在计算时     精度大的 强制 转换为精度小的[强制转换]     - 介绍         自动转换的逆过程 将容量大的数据类型转化为容量小的数据类型 使用的时候要加上   强制转换符()  但是可能造成精度降低或者溢出【注意】     - 细节说明         1 当进行数据的大小 大->小  就需要使用强制转换         2 强制转换符号只针对最近的操作有效  往往会使用小括号提升优先级           比如:  int x=(int)10*3.5+6*1.5;     这个是优先提升10                  int y=(int)(10*3.5+6*1.5);   这个优先提升的是括号内这个式子的结果         3 char类型可以保存 int 的常量值  但是不能保存 int 的变量值 需要进行强转         4 byte 和 short 类型在进行运算的时候 当做int 类型处理 package lfx250218; public class ForceCovertDetail { //强制转换类型的细节说明 public static void main(String[] args) { //1 强制转换符只针对最近的操作有效 往往会使小括号提高优先级 //int x=(int)10*3.5+6*3.5;//3.5是double类型的 double->int是转换不过去 int y=(int)(10*3.5+6*1.5); // System.out.println(x); System.out.println(y); //char 类型可以保存int 的常量值 但是不能保存int的变量值需要进行强转 char c1=10; int m=100; // char c2=m; char c3=(char) m; System.out.println(c3);//输出100 所对应的字符【看ASCII码】 } }    2   switch(表达式)中表达式的返回值必须是【byte short int char enum String】 【添加enum(蓝桥杯中基础题的题型之一)】   enum是一个关键字,用于定义枚举类型。枚举类型是一种特殊的数据类型 它允许你定义一组命名的常量 - 基本概念:     枚举类型是一中类类型 它可以包含自己的  方法 构造函数 字段  使用枚举可以提高代码的可读性和可维护性 因为它   将一组相关常量封装在一起 并且可以确保变量只能取枚举中定义的值 - 特点:     - 常量集合: 本质上是一组预定义的常量集合  这些常量是枚举类型的实例     - 类型安全: 可以确保变量只能取枚举中定义的值,避免了使用普通数字或者字符串常量可能出现的错误     - 可迭代:   枚举类型实现了 java.lang.Enum类没并且可以使用valus()方法返回一个包含所有枚举常量的数组,从而进行迭代操作   3 case子句中的值必须是常量 而不能是变量   4 default子句是可选的 当没有匹配的case时 执行default   5 break语句是用来执行完一个case分支后使程序跳出switch语句块  如果没有写break 程序会顺序执行到switch结尾 switch和if的比较     - 如果判断的具体数值不多 而且符合btye short int char enum String 这6种类型 虽然两个语句都可以使用  但是建议使用switch语句     - 其他情况: 对区间判断 对结果为Boolean 类型判断 使用if if 的范围更加广泛 switch相关的练习代码 package lfx250218; import java.util.Scanner; //switch的入门小练习 public class switch01 { public static void main(String[] args) { /* 要求: 1 请编写一个程序,该程序可以接受一个字符,比如:a b c d e f g 2 a 表示星期一 b 表示星期二…… 3 根据用户的输入显示对应的信息 要求使用switch 语句完成 思路分析 1 接收一个字符 创建一个Scanner对象 2 使用switch语来完成匹配信息 */ Scanner mya=new Scanner(System.in); System.out.println("请输入一个字符,并且字符要在a和g之间"); char c1=mya.next().charAt(0);//把接收到的一个字符串转成一个字符 /* Java的基本数据类型 - 整数型 byte:储存空间 1个字节(8位) 取值范围 -128到127 short:储存空间 2个字节(16位) int: 储存空间 4个字节(32位) long: 储存空间 8个字节(64位) - 浮点型 float: 储存空间 4个字节(32位) double: 储存空间 8个字节(64位) - 字符型 char 储存空间 2个字节(16位) -布尔型 boolean 取值true或者false [弄混淆] 1 String是一个非常重要并且常用的类,用于表示字符串 2 String对象一旦被创建,其内容不能被改变 当对String对象进行 拼接 ,替换 等操作时 3 实际上是创建了一个新的String对象 4 字符串拼接使用的是“+”运算 */ //在Java中只要有值返回 就是一个表达式 switch (c1){ case 'a' : System.out.println("今天星期一。"); break; case 'b' : System.out.println("今天星期二。"); break; case 'c' : System.out.println("今天星期三。"); break; case 'd' : System.out.println("今天星期四。"); break; case 'e' : System.out.println("今天星期五。"); break; case 'f' : System.out.println("今天星期六。"); break; case 'g' : System.out.println("今天周日。"); break; default: System.out.println("没有相关信息"); break; } } } package lfx250218; import java.util.Scanner; public class switch02 { //使用switch把小写类型的char转化为大写(键盘输入) 只转化a b c d //其他输出other public static void main(String[] args) { Scanner myScanner = new Scanner(System.in); char c1=myScanner.next().charAt(0); switch (c1){ case 'a': System.out.println('A'); break; case 'b': System.out.println('B'); break; case 'c': System.out.println('C'); break; case 'd': System.out.println('D'); break; case 'e': System.out.println('E'); break; default: System.out.println("other"); break; } } } package lfx250218; import java.util.Scanner; public class switch03 { //对于学生成绩大于60分的 输出“合格” // 低于60分的 输出“不合格” //注意; 输出的成绩不能大于六十 public static void main(String[] args) { //定义一个输入对象 Scanner myScanner=new Scanner(System.in); //定义一个成绩变量 int score= myScanner.nextInt(); //判断成绩在0到100 这个范围内用if语句 if (score>=0&&score<=100) { //先判断输入的成绩是否正确 int s1 = (int) (score / 60); switch (s1) { case 1: System.out.println("合格"); break; case 0: System.out.println("不合格"); break; default: System.out.println("输入有错误"); break; } } } } package lfx250218; import java.util.Scanner; public class switch04 { //根据用于指定月份 打印该月份所属的季节 3 4 5 春季 6 7 8 夏季 9 10 11秋季 public static void main(String[] args) { Scanner myScanner = new Scanner(System.in); int month= myScanner.nextInt(); if (month>=1&&month<=12){ switch (month){ case 3|4|5: System.out.println("春季"); break; case 6|7|8: System.out.println("夏季"); break; case 9|10|11: System.out.println("秋季"); break; default: System.out.println("冬季"); break; } }else { System.out.println("输入信息错误"); } } } - 电脑内存单位的基本换算【背】【呃呃呃我不会,所以背一下吧】     1 千字节(KB) = 1024 字节(Byte),即 1KB = B = 1024B。     1 兆字节(MB) = 1024 千字节(KB),即 1MB = B = 1024KB = 1024×1024B 。     1 吉字节(GB) = 1024 兆字节(MB),即 1GB = B = 1024MB = 1024×1024KB = 1024×1024×1024B。     1 太字节(TB) = 1024 吉字节(GB),即 1TB = B = 1024GB 。     1 拍字节(PB) = 1024 太字节(TB),即 1PB = B = 1024TB 。     1 艾字节(EB) = 1024 拍字节(PB),即 1EB = B = 1024PB
标签:

Java的switch由讯客互联创业栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Java的switch