我正在尝试根据从 php 中的对象数组收到的数据创建查询。我不断收到有关案例内嵌套 if 的错误。意外的“{”,是因为我在案例中不能有 if 吗?
switch($name){
case 'players':
$query .= " min_players <=".$value." AND max_players >=".$value." AND";
break;
case 'max-duration':
if((intval($value) >= 45) {
$min = intval($value)-30;
$query .= " duration <=".$value." AND duration >=".$min." AND";
} else { //if duration < 45
$query .= " duration <=".$value." AND";
}//end else
break;
}
Run Code Online (Sandbox Code Playgroud) 我有一个具有 switch 块的函数,当没有匹配项时我想抛出异常,我该怎么做,我写了这个开关
private static int ClimateCal() {
int climateCal = 0;
switch (climate.toLowerCase()){
case "Hot":
climateCal = 0;
break;
case "Cold":
climateCal = 250;
break;
case "Moderate":
climateCal = 500;
break;
default:
Exception exception;
}
return climateCal;
}
Run Code Online (Sandbox Code Playgroud) 我正在关注有关在 Unity 中生成 Minecraft 风格地形的 YouTube 教程,在教程的第 10 部分中,编写了一个脚本,其中包含一个以语句结尾的函数return x switch。switch的具体内容如下:
public static Vector3Int GetVector(this Direction direction)
{
return direction switch
{
Direction.up => Vector3Int.up,
Direction.down => Vector3Int.down,
Direction.right => Vector3Int.right,
Direction.left => Vector3Int.left,
Direction.forward => Vector3Int.forward,
Direction.backwards => Vector3Int.back,
=> throw new Exception("Invalid direction provided.")
};
}
Run Code Online (Sandbox Code Playgroud)
Direction是一个单独脚本中的枚举,其中包含forward, right, backwards, left, up, 和down, 按确切的顺序。问题是,一旦编译了代码,我就会在 Unity 中从 DirectionExtensions.cs(包含返回开关的脚本)收到此错误:
Assets/Scripts/Terrain/DirectionExtensions.cs(17,52):错误 CS8504:模式丢失
我尝试在 Google 上搜索错误代码和错误消息,但结果要么是参考资料(例如 C# 错误消息列表),要么是不相关的 Unity 错误。我没有发现任何实际发生过此错误的例子。不,该错误不是预期的,因此本教程不会演示如何在任何时候修复它。如何解决此错误以便我可以继续处理我的项目?
我希望有人可以帮助我解决一个初学者问题(这是专门在 Arduino 上运行的,但我怀疑这是一个比这更基本的 C++ 问题)。
我不明白为什么以下“switch”语句同时输出“Channel 1”和“Channel 2”语句:
void setup() {
delay(100);
Serial.begin(57600);
delay(100);
int channel = 1;
switch (channel) {
case 1:
Serial.println("Channel 1");
case 2:
Serial.println("Channel 2");
}
}
void loop() {
}
Run Code Online (Sandbox Code Playgroud)
我读过 switch 语句“follow-though”或“cascade”,即我理解如果满足条件 1,那么代码仍然会继续检查后续条件(并且您可以添加显式的“break”命令)跳出)。这一切都很好。
但我不明白第二个表达式的计算结果为true(因为整数变量channel=1,并且只有当channel=2时它才应计算为true)。
我在这里缺少什么?
谢谢你!
我想在JavaScript代码中使用switch条件.但我不知道怎么办?请帮我做这个..提前谢谢
下面的代码应该接受输入,然后存储它然后显示LED,将数字作为显示.然而,它提供随机LED,而不是正确的LED.我检查了一些事情,但我看不出有什么问题,你能帮忙吗?
#include <stdio.h>
int main( void )
{
/* Declare a data variable for each pixel. */
int a1, a2, a3, a4, a5 =0;
int b1, b2, b3, b4, b5 =0;
int c1, c2, c3, c4, c5 =0;
int d1, d2, d3, d4, d5 =0;
int e1, e2, e3, e4, e5 =0;
int f1, f2, f3, f4, f5 =0;
int g1, g2, g3, g4, g5 =0;
int h1, h2, h3, h4, h5 =0;
int i1, i2, i3, i4, i5 =0; …Run Code Online (Sandbox Code Playgroud) 我找到了一个实现switch语句的函数 - >
File = open('/file.txt','r')
String = File.readline()
String = str(String)
print String
for case in switch(String):
if case("Head"):
print "test successed"
break
if case("Small"):
print String
break
if case("Big"):
print String
break
if case():
print String
break
Run Code Online (Sandbox Code Playgroud)
打印时的字符串值是Head,但是switch语句总是转到最后一种情况..函数显然工作正常,因为当我用v ="Head"更改字符串时它工作了!!!
知道出了什么问题吗?
开关功能 - >
class switch(object):
def __init__(self, value):
self.value = value
self.fall = False
def __iter__(self):
"""Return the match method once, then stop"""
yield self.match
raise StopIteration
def match(self, *args):
"""Indicate whether or not to enter a case …Run Code Online (Sandbox Code Playgroud) 我的问题是,当switch语句指示时,此函数将guess返回为97和y的总和,而不仅仅是字母.奇怪的是,当我拥有它只是返回y时,它正如我所期望的那样工作.例如,当y = 4,并且我返回y时,显示4.当y = 4并且返回'guess'时,显示101.免责声明:这不是完整的代码.它真的很长,我觉得多余,因为我唯一的问题是当这个特定的函数返回'guess'时,即使它返回y也没有.如果所有代码都有用,我会很乐意提出来.
int letterguess(int z){
char guess;
int y;
y=letters[0][z];
switch (y){
case 0:
guess='a';
break;
case 1:
guess='b';
break;
case 2:
guess='c';
break;
case 3:
guess='d';
break;
case 4:
guess='e';
break;
case 5:
guess='f';
break;
case 6:
guess='g';
break;
case 7:
guess='h';
break;
case 8:
guess='i';
break;
case 9:
guess='j';
break;
case 10:
guess='k';
break;
case 11:
guess='l';
break;
case 12:
guess='m';
break;
case 13:
guess='n';
break;
case 14:
guess='o';
break;
case 15:
guess='p';
break;
case …Run Code Online (Sandbox Code Playgroud) switch语句似乎完全没用.它能做的任何事情都可以通过if和else来完成.
他们甚至可能编译成相同的代码.
那么为什么要费心呢?
break交换机中的语句label:让我发疯,这种格式让我想起了goto.
这是针对objective-c,c,C++的.我不确定vb.net是否有switch语句,但即使它确实如此,我必须忘记因为我从来没有使用它.
switch-statement ×10
c++ ×3
c ×2
if-statement ×2
java ×2
android ×1
arduino ×1
asp.net ×1
c# ×1
expression ×1
file-io ×1
javascript ×1
objective-c ×1
php ×1
python ×1