是否可以在javascript中使用嵌套的switch语句。
我的代码有点像
switch(id1)
{
case 1:
switch(id2){
case 1:{
switch(id3){
case 1:{}
case 2:{}
}
}
case 2:{
switch(id4){
case 1:{}
case 2:{}
}
}
}
case 2:
}
如果是,那么这是一个很好的做法,否则我们可以使用任何替代方法。
这不是一个专门的C#问题,但它是C#版本的switch让我问这个问题。
为什么我必须明确声明我不想从一条case语句失败到下一条语句,而不是在我确实想要失败的时候指明?
在C#中,编译器不会让您从一条case语句跳到下一条语句(除非case语句为空),但它会强制您在每条语句的末尾添加一个显式的break。我编写的绝大多数switch语句都没有失败。
int x = 4;
string result;
switch (x)
{
case 1:
result = "One";
break;
case 2:
result = "A couple";
我必须评估许多条件。在我的例子中,我必须这样做:
switch(id)
{
case 5:
// switch some other cases here
case 6:
// set some value
...
}
在case 5中使用另一个交换机是一种好的做法吗?如果不是,哪一个更好?那里有if语句吗?
我们都知道,c#中的开关情况不允许您根据掉线
所选开关部分中语句列表的执行以第一条语句开始,并通过语句列表继续执行,通常直到到达跳转语句,例如中断、goto大小写、返回或抛出。此时,控制被转移到开关语句之外,或者转移到另一个case标签。
与C++不同,C#不允许执行从一个交换机部分继续到下一个开关部分。下面的代码会导致错误。
如果是这样的话,为什么要编译:
void Main()
{
int s = 3;
switch (s)
{
case 1:
case 2:
case 3:
Cons
这个问题是对这个的一个附加功能
在C#中,切换情况不能落入其他情况,这会导致编译错误。在本例中,我只是将所选月份及其以后的每个月的月份总数相加。(简单的例子,不是真实的)
switch (month)
{
case 0:
add something to month totals
case 1:
add something to month totals
case 2:
add something to month totals
default:
break;
}
在C#中,有没有一种逻辑上的替代方案,而不需要编写
我知道我的文档不是一流的。
这个程序是创建一个石头,布,剪刀游戏:
最初,我努力让case语句和case语句正常工作,但我觉得我解决了这个问题。
我的问题是:这是在switch语句中嵌套switch语句的可接受实现吗?否则,我可以将if语句放在userChoice Switch语句中。
public static void main(String[] args) {
// Variable declarations
Scanner keyboard = new Scanner(System.in);
Random rand = new Random();
in
Swift有没有类似于Haskell在模式匹配中使用的?我试图通过使用嵌套模式来消除以下代码中的第二个switch语句:
indirect enum Type: CustomStringConvertible {
case Int
case Fun(Type, Type)
var description: String {
switch self {
case .Int: return "int"
case .Fun(let p, let r):
switch p {
case .Fun(_):
我有这样的代码
switch thing {
case thisThing:
do thing #1
do thing #2
case thatThing:
do thing #2
do thing #3
case anotherThing:
do thing #4
default:
default
}
所以每个案例都有一些只有IT才有的东西。某些情况下也会做与一个或多个其他情况相同的事情。
如果我不想要任何重复的代码,有没有办法做到这一点?
或者,有没有一种更有效的方法来实现这一点,而根本不需要switch语句??我
我有点搞不懂在交换条件下使用术语的问题。为什么c#会在case声明的变量中获取所有变量--在switch语句的顶部自动声明这些变量?
例如:
switch (test)
{
case "hello":
string demo = "123";
break;
case "world":
demo = "1234";
break;
// not working
case "hello world":
de
下面有一个test.groovy脚本,但是当我运行它时,我得到了以下输出。
groovy test.groovy
set color to good
set color to unstable
unstable
为什么我看到的是“设定好的颜色”?
第13行状态
case "SUCCESS" :
但是buildStatus是“不稳定的”
我以前从未在groovy中使用过switch语句,所以可能缺少一些非常基本的东西。
test.groovy
def print_arg(def arg){
buildStatus = "UNSTABLE"
prev
我正在将一些VB.NET代码转换为C#,因为我对它比较满意,它有助于我更快地解决问题。然而,我发现这段代码在VB.NET中不是一个错误,但是将它转换为C#会生成一个编译器错误。
VB.NET码
Select Case name
Case "FSTF"
.....
Case "FSTF"
.....
End Select
C#转换码
switch(name) {
case "FSTF":
....;
break;
case "FSTF":
我正在使用的PHP脚本包含switch语句和break,以防止代码自动运行到下一种情况:
if (!isset($a)) $a = '';
switch($a)
{
case 1:
default:
// some code
break;
case 2:
// some code
break;
case 3:
// some code
break;
}
如何防止用户在URL中写入"$a“某个在php switch语句中不存在的数字?例如,在上面的例子中,如果有人写成url,indes.php?a=5应该会得到一条链接不正确的消息。做到这一点的最好方法是什么?
我感兴趣的
为什么我会得到以下编译器错误:
//error CS0159:没有这样的标签“lbl_proc_20”
使用以下代码:
//JUST A DUMMY CODE TO ILLUSTRATE THE CONCEPT
int a = resultOfFunction1();
int b = resultOfFunction2();
//10+ Local variables that are calculated depending on the results above
if (a < 10)
{
switch (b)
{
case 0:
最近我看到了下面显示的代码片段,我原以为它会出现语法错误,但令我惊讶的是,代码产生了有效的输出。
#include <stdio.h>
int main(void) {
int x = 2;
switch(x) {
case 1: printf("1"); break;
do {
case 2: printf("2 "); break;
case 3: printf("3 "); break;
} while(++x <
我只是想知道在c#中是否有一种方法可以使用另一个案例激活一个案例。E.g
{
switch
case "Music":
//play music string
{
case "Song Name":
messagebox.show("Playing Song Name");
break;
case "Song 2":
messagebox.show("Playing Song 2");
break;
}
}
有没有人知道我该怎
我读了一篇有趣的文章,它提出了一个有趣的观点,关于vb.net中的'case‘语句与C#中的'switch’语句,我已经粘贴到下面:
下面的Visual Basic Select Case语句不能在C#中使用单个switch语句表示:
Dim Condition As Integer = 55
Select Case Condition
Case 1, 3 To 5, 10, 12, 14, Is > 50
'value 55 executes code here
Case Else
'values <1, 2, 6-9, 1
...
case 1:
string x = "SomeString";
...
break;
case 2:
x = "SomeOtherString";
...
break;
...
关于C#中的switch语句,有什么我不理解的地方吗?当使用case 2时,为什么这不是一个错误?
编辑:这段代码可以工作,并且不会抛出错误。
当我在VS2008 C#中像这样创建一条switch语句时(人为的):
switch (state) {
case '1':
state = '2';
case '2':
state = '1';
}
它抱怨说我不被允许通过:
控件不能从一个案例标签(‘案例'1’(0x31):')切换到另一个案例标签
如果不允许插入,那么break语句的目的到底是什么呢?为什么语言设计者不把它去掉,自动跳到switch语句的末尾,而不是强迫我们加入不必要的结构呢?
如何在响应Swift中的break语句的嵌套结构中中断外部循环?
例如:
while someCondition {
if someOtherCondition {
switch (someValue) {
case 0: // do something
case 1: // exit loop
case 2...5: // do something else
default: break
}
} else {
s
我最初受到Swift的鼓励,因为终于可以使用字符串编写switch语句了,这意味着基于字典的代码现在几乎是可读的。
let kMyDictionaryKey1 = "one" // use 'let' to declare constant dictionary key
let kMyDictionaryKey2 = "two" // use 'let' to declare constant dictionary key
println( "hello world" );
if ( true )
{