【求助】关于switch case 的问题

问题描述

本人刚开始学习C#,在Unity中想实现如下功能,控制汽车的档位,在不同档位下实现不同的速度,具体的代码如下://定义档位函数voidGears(){if(Input.GetKeyDown(KeyCode.Q)){if(gears<8){gears++;}}elseif(Input.GetKeyDown(KeyCode.E)){if(gears>-8){gears--;}}Debug.Log("gears="+gears);switch(gears){case8:speed>=70.0f&&speed<=80.0f;break;}}但是代码中出现了一下问题:求解答,为什么speed>=70.0f&&speed<=80.0f;会出错。注:speed以做全局变量定义。

解决方案

解决方案二:
贴全部代码,看不懂你想表达什么,这个完全都是编译没通过,你这个返回的是一个BOOL类型的结果,就好像是case8:true;你觉得意义吗,应该是case8:boola=true;你说对吗?
解决方案三:
case关键字后面应该是一个执行语句,例如赋值、函数调用等。但你只是给出了一个表达式,所以会报错。
解决方案四:
要是一个语句,这不是语句,只返回trueorfalse.应该:boolflag=speed>=70.0f&&speed<=80.0f;或者flag拿到外面定义
解决方案五:
你的那段不是执行语句,case下面是你要执行的操作,如果你是判断,要加上if之类的,进行判断操作
解决方案六:
你那个不是一个完整的语句,可以复制给一个变量,或者放到if里面。和case没有关系boolbFlag=speed>=70.0f&&speed<=80.0f;或者if(speed>=70.0f&&speed<=80.0f){.....}
解决方案七:
引用1楼yangliweng2的回复:

贴全部代码,看不懂你想表达什么,这个完全都是编译没通过,你这个返回的是一个BOOL类型的结果,就好像是case8:true;你觉得意义吗,应该是case8:boola=true;你说对吗?

case关键字后面应该是一个执行语句,我的意思是判断gear的值,,当gear的值为8的时候不是就执行case后面的语句嘛?我想使前面定义的变量speed处在0至80之间。
解决方案八:
引用5楼findcaiyzh的回复:

你那个不是一个完整的语句,可以复制给一个变量,或者放到if里面。和case没有关系boolbFlag=speed>=70.0f&&speed<=80.0f;或者if(speed>=70.0f&&speed<=80.0f){.....}

我是想将全局变量speed的变量区间限制在70-80之间,如果在外部事先定义一个布尔值b,是否可以这样写:case8:b=true;if(b){speed>=70.0f&&speed<=80.0f;}
解决方案九:
speed>=70.0f&&speed<=80.0f;这是个不完整的语句这是个不完整的语句这是个不完整的语句就相当于你要说我叫XXX你就说了个我叫下面就没了下面就没了下面就没了
解决方案十:
引用7楼u010641353的回复:

我是想将全局变量speed的变量区间限制在70-80之间,如果在外部事先定义一个布尔值b,是否可以这样写:case8:b=true;if(b){speed>=70.0f&&speed<=80.0f;}

不能这么写,你限制speed在区间if(speed>80.0f){speed=80.0f;}if(speed<70.0f){speed=70.0f;}
解决方案十一:
应该根据速度判断档位吧
解决方案十二:
boolflag=speed>=70.0f&&speed<=80.0f;

这堆玩意要有一个布尔类型的变量接收

时间: 2024-11-14 12:19:55

【求助】关于switch case 的问题的相关文章

从if else到switch case再到抽象

大家觉得在接手遗留代码时,见到什么东东是最让人感到不耐烦的?复杂无比的 UML ?我觉得不是. 我的答案是,超过两个 else 的 if ,或者是超过两个 case 的 switch .可是在代码中大量使用 if else 和 switch case 是很正常的事情吧?错!绝大多数分支超过两个的 if else 和 switch case 都不 应该以硬编码( hard-coded )的形式出现. 复杂分支从何而来 首先我们要讨论的第一个问题是,为什么遗留代码里面往往有那么多复杂分支.这些复杂分

js中switch case循环实例代码

 这篇文章主要介绍了js中switch case循环实例代码,有需要的朋友可以参考一下 代码如下: switch (objNameType) {   case 'PD':   valueUD = obj.id;   id = objName;   var loadVUD = UserData.load(exam, id);   if (loadVUD == null || loadVUD == undefined || loadVUD == '') {   var tmpTGId = obj.i

JavaScript switch case 的用法实例[范围]_javascript技巧

几个例子: 复制代码 代码如下: function case1(num){ switch(num){ case 1: document.writeln("show 1!!"); break; case 2: document.writeln("show 2!!"); break; case 3: document.writeln("show 3!!"); break; default: document.writeln("show ot

Flash Switch Case实例教程

Flash Switch  Case实例教程 厌倦了无休止的,如果...别的吗? Flash MX中增添了一个新的方式处理这个问题:开关.这一指示中已经存在的一些语言(脚本语言, PHP的角.. ) ,并允许您表达和评价作为一种替代,如果/人. 该教程 事实上,交换机( )不会带来什么新的脚本.它只是一种方式,如果写/别人有所不同.其工作原理如下: 您确定您有什么评价之间的( )的开关. 之间的( )的开关,您将采取行动,履行在特定情况下,也就是说当表达的情况下被评价为严格平等的表达,你"交换&

循环语句和switch...case

问题描述 循环语句和switch...case 请问在循环语句中使用了switch...case,如何在分支结束后再执行另一个分支? 解决方案 分支结束后再执行另一个分支什么意思? 你可以用贯穿的标号: switch (day) { case 1: case 2: ... case 5: cout << "work day "; case 6: case 7: cout << "rest day "; default: cout <&l

javascript 从if else 到 switch case 再到抽象_javascript技巧

我的答案是,超过两个 else 的 if ,或者是超过两个 case 的 switch .可是在代码中大量使用 if else 和 switch case 是很正常的事情吧?错!绝大多数分支超过两个的 if else 和 switch case 都不应该以硬编码( hard-coded )的形式出现. 复杂分支从何而来 首先我们要讨论的第一个问题是,为什么遗留代码里面往往有那么多复杂分支.这些复杂分支在代码的首个版本中往往是不存在的,假设做设计的人还是有点经验的话,他应该预见将来可能需要进行扩展

C语言中switch case语句可变参实现方法(case 参数 空格...空格 参数 :)

正常情况下,switch case语句是这么写的: switch(参数) { case 1 : ... ; break ; case 2 : ... ; break ; default: ... break ; } 这种是我们最常见的写法,当然也可以这么写: switch(参数) { case 1: case 2 : case 3 : case 4 : ... ;break ; default : ... ;break ; } 接下来说一种不常见的,但是对于多参数有很大的帮助的写法: 先给一个程

举例讲解Swift编程中switch...case语句的用法_Swift

Switch作为选择结构中必不可少的语句也被加入到了Swift中,只要有过编程经验的人对Switch语句都不会感到陌生,但苹果对Switch进行了大大的增强,使其拥有其他语言中没有的特性.使用Switch语句很简单: var i = 0 switch i { case 0: "0" //被输出 case 1: "1" default: "2" } 在这个最简单的Switch语句中,与其他语言很不同的一点是:不用显式的加上break.Swift的S

php switch case用法与实例教程

php switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分,通常为变量名称.而 case 后的 exprN,通常表示变量值.冒号后则为符合该条件要执行的部分.注意要用 break 跳离循环. switch与if 区别是   用 if 循环就很麻烦了.当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率,Switch 语句可以避免冗长的 if..elseif..else 代码块. switch (expr) {     

ASP中用select case代替其他语言中的switch case, default用case else_应用技巧

asp中不能用switch语句,要用select case语句了 简单的介绍一下 选择报表的工作一样,如果语句.然而不同的是,他们可以检查多个值.当然,你有 多个相同的,如果.. else语句,但是这并不总是最好的方法. 选择语句允许一个程序来计算表达式,并试图匹配表达式的值案件标签.如果找到匹 配,程序执行相关的声明.对于SELECT语句的语法如下: select case expression case label_1 statements_1 case label_2 statements