dzrs.net
当前位置:首页 >> CAsE关键字后面必须是常量 >>

CAsE关键字后面必须是常量

在大部分动态语言中,case后面是可以接变量甚至是表达式的.比如说你可以这么做:var a = 0, b = 1, c = 3;<br>switch(true) {<br>case a < b: alert("a比b小"); break;<br>case a < c: alert("a比c小"); break;<br>}<br>基本上这种类型都可以用if else来写,但是用switch写可读性会好一些.如果需要性能的话可以自己手动实现一个跳转表,现有的动态语言一般都支持一等函数和属性列表,跳转表的实现也并不是特别难.所以其实也就是一个取舍的问题.

是的,case语句后面的必须是整型常量!整型常量有多种,比如int、char、enum枚举常量,在C++中bool类型也属于整型常量的一种.//一般switch语句使用此种格式 switch(表达式) { case 常量表达式1:语句1;.case 常量表达式2:语句2; default:语句; }switch是一个整型表达式.case是一个整数常量表达式.只所以不能使用浮点数,个人理解应该是浮点数的精度问题不容易把握,在一定误差内可能出现多个匹配,而且浮点数对硬件依赖要求比较高,代码可移植性可能会更低.

不是,可以定义不同的数据类型.

Switch语句表达式的值必须为下列类型中的一种:sbyte、byte、short、ushort、int、uint、long、ulong、char、string.你也可能使用一个能够隐性转换成上述值类型的表达式.Switch块以关键字case开始,后面是一个常量表达式.常量表达式后面是一个冒号,冒号后是语句列表.break则结束语句块.所以我认为D是错误的

变量等于常量时就执行,但是执行之后没有跳出去的话会连带着下面的方案一起执行.

case后面的值是在编译时候就要确定的,所以只能是常量,但不一定非得是1,2,3之类的数字 只要可以确定值就可以,比如(2+4)*3 或不等式:2<5 (这个不等式的值实际上是1) 当然也可以出现你说的 ch>'A'&&ch<'Z' 但前提是ch必须定义成const类型 如 const ch='B'; 你可以编程实践下 还有问题再交流

switch也相当一个循环,case后边跟的是满足条件,所以必须是一个常量,或者常量表达式,意思就是必须跟一个唯一值.只有当条件满足这个唯一值得时候才会执行满足条件的代码,如果不满足会继续下一个case,直到找到满足的条件,如果都不满足就执行default,不知道这么说你是否明白

case后面的值是在编译时候就要确定的,所以只能是常量,但不一定非得是1,2,3之类的数字只要可以确定值就可以,比如(2+4)*3或不等式:2'A'&&ch

准确的说case后面跟的是一个确定的值,由于常量表达式也好,逻辑表达式(在C语言中逻辑表达式的值只有两种而且是整形数值1或者0)也好都是返回的一个确定的值.因此switch case语句中case后可以跟逻辑表达式.(注:刚刚我试了一下,确实可以)

是与switch语句配对使用的,用于实现某个数值的指定跳转.例如 switch(x) { case 0: DoAAA(); break; case 1: DoBBB(); break; default: DoCCC(); break; } 就是根据x的内容分别跳转.如果x==0,那么执行DoAAA()然后跳出switch-case语句继续向后执行;如果x==1,那么执行DoBBB()然后跳出switch-case语句继续向后执行;如果x是其它值,那么执行DoCCC()然后跳出switch-case语句继续向后执行.

ntjm.net | 3859.net | ymjm.net | ndxg.net | gsyw.net | 网站首页 | 网站地图
All rights reserved Powered by www.dzrs.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com