switch语句能否用作用在byte上,能否作用在long上,能否作用在String上?

switch选择语句的格式为:

switch(intergral-selector){

case  integral-value1 :  statement ; break;

case  integral-value2 :  statement ; break;

//...

default : statement;

}

intergral-selector只能是一个能够产生整数值的表达式或者枚举常量,整数表达式可以是int基本类型或Integer包装类型,因为,byte,shot,char都可以隐含的转换为int,所以,这些类型以及这些类型的包装类型也是可以的。显然,long和String类型都不符合switch的语法规定,并不能被隐式的转换成int类型,所以,他们不能作用于switch语句中。

补充:

基本类型 大小 最小值 最大值 包装器类型
boolean —— —— —— Boolean
char 16-bit Undicode 0 Unicode 2^16-1 Character
byte 8 bits -128 +127 Byte
short 16bits -2^15 +2^15-1 Short
int 32bits -2^31 +2^31-1 Integer
long 64bits -2^63 +2^63-1 Long
float 32bits IEEE754 IEEE754 Float
double 64bits IEEE754 IEEE754 Double
void —— —— —— Void

IEEE二进制浮点数算术标准(IEEE 754)是最广泛使用的浮点数运算标准,为许多CPU与浮点运算器所采用。

char类型只能存放以‘ ’(单引号)为标志的单个字符。

字符是指计算机中使用的字母、数字、字和符号,包括:1,2,3,A,B,C,~!#%+等等。在 ASCII 编码中,一个英文字母字符存储需要1个字节。在 GB2312 编码或 GBK 编码中,一个汉字字符存储需要2个字节。在UTF-8编码中,一个英文字母字符存储需要1个字节,一个汉字字符储存需要3到4个字节。在UTF-16编码中,一个英文字母字符或一个汉字字符存储都需要2个字节(Unicode扩展区的一些汉字存储需要4个字节)。在UTF-32编码中,世界上任何字符的存储都需要4个字节。

字符类型在内存中占有两个字节,可以用来保存英文字母等字符。计算机处理字符类型时,是把这些字符当成不同的整数来看待,因此,严格来说,字符类型也算是整数类型的一种。

问:char类型变量中能不能存储一个中文汉字?为什么?

char类型变量是用来存储Unicode编码的字符的,Unicode编码字符集中包含了汉字,所以,char类型变量可以存储一个汉字。但是,如果某个特殊的汉字没有被包含在unicode编码字符集中,那么,这个char类型变量中就不能存储这个特殊汉字。说明:Unicode编码占用两个字节,所以,char类型的变量也是占用两个字节的。

switch语句中的选择因子的更多相关文章

  1. 在 php 7.3 中 switch 语句中使用 continue

    在 php 7.3 中 switch 语句中使用 continue 在 php 7.3 的 switch 中使用 continue 会出现警告.1 2 3 while ($foo) { switch ...

  2. C++17尝鲜:在 if 和 switch 语句中进行初始化

    初始化语句 在C++17中,类似于 for 语句,在 if 和 switch 语句的判断条件之前也能加上初始化语句,语法形式如下: if (初始化语句; 条件) 语句 else 语句 switch ( ...

  3. 1.3.1 switch 语句中的 String

    switch语句是一种高效的多路语句,可以省掉很多繁杂的嵌套if判断: 在Java 6及之前,case语句中的常量只能是byte.char.short和int(也可以是对应的封装类)或枚举常量,在Ja ...

  4. 关于switch语句中使用String类型的实现原理

    在Java 7 以后,switch语句可以用作String类型上. 从本质来讲,switch对字符串的支持,其实也是int类型值的匹配.它的实现原理如下: 通过对case后面的String对象调用ha ...

  5. C++中switch 语句中的变量声明和

    switch 内部的变量定义: ; switch(i) { : string str; //error ; //error int val2; //right ; //right : val2 = ; ...

  6. JavaScript对于switch语句中的case后键入值的带不带引号

    一.用switch选择星期几 这时case为  例:case="星期一" 二.用switch选择单纯的数字 这时case为  例:case='1' 三.用switch选择一个应用了 ...

  7. switch语句中default用法详解

    当年学C语言switch开关语句的时候,很多人会告诉你它是这么用的: switch(表达式){ case常量表达式1: 语句1;break; case常量表达式2: 语句2;break; - case ...

  8. switch语句中 参数的类型

    switch可作用于char byte short int switch可作用于char byte short int对应的包装类 switch不可作用于long double float boole ...

  9. JS中switch语句做选择时为什么可以不用break?

    在JavaScript中,switch语句相比其他语言并没有特殊之处. 在使用时,我们要注意每个分支后都应加一条break语句,否则后面的分支仍然会执行.实际程序中,我发现有时没用break语句,仍然 ...

随机推荐

  1. 《FPGA零基础入门到精通视频教程》-第001a讲软件的安装

    高清视频和配套讲义这里下载 http://www.fpgaw.com/thread-67758-1-1.html 优酷视频不是很清晰

  2. 深度学习“引擎”之争:GPU加速还是专属神经网络芯片?

    深度学习“引擎”之争:GPU加速还是专属神经网络芯片? 深度学习(Deep Learning)在这两年风靡全球,大数据和高性能计算平台的推动作用功不可没,可谓深度学习的“燃料”和“引擎”,GPU则是引 ...

  3. Wormholes 最短路判断有无负权值

    Description While exploring his many farms, Farmer John has discovered a number of amazing wormholes ...

  4. XBox360自制系统的更新(Update)

    升级和更新 升级(Upgrade):从Windows XP到Windows 10,这叫升级,不叫更新.XBox360升级失败的话,后果可能会比较严重,直接就无法开机了. 更新(Update):在Win ...

  5. Wii硬盘版玩机心得

    若干年前在电玩巴士买了一台硬盘版的Wii,下面是我的玩机心得: 查看Wii的系统版本信息 链接:http://www.cnblogs.com/duxiuxing/p/4251693.html Wii硬 ...

  6. migration vmware vms to openstack kvm 修改vmware windows scsi to ide

  7. MVC路由机制

      按照传统,在很多Web框架中(如经典的ASP.JSP.PHP.ASP.NET等之类的框架),URL代表的是磁盘上的物理文件.例如,当看到请求http://example.com/albums/li ...

  8. DataSet、DataTable、DataRow、DataColumn区别及使用实例

    DataSet 表示数据在内存中的缓存. 属性 Tables  获取包含在 DataSet 中的表的集合. ds.Tables["sjxx"] DataTable 表示内存中数据的 ...

  9. 【建模】UML类关系分析

    一.UML类关系分析 1.关联(asociation) 一般是一方拥有另一方对象的指针.箭头的方向是访问方向. 2.聚合(Aggregation)和组合(Composition) 聚合和关联一般不做区 ...

  10. [置顶] ios 水果连连看游戏源码

    原创文章,转载请注明出处:http://blog.csdn.net/donny_zhang/article/details/9251917 demo功能:水果连连看游戏源码.iphone6.1 测试通 ...