switch函数基础请教。谢谢大家

 

请问在switch函数里面,让函数停下来是不是有两种情况,一种是碰到了break;,还有一种是碰到了default?

如果是的话,是不是下面这段代码,在default后面那个break,加不加效果都是一样的?谢谢!

int x = 56;
switch(x)
{
    case 1:
Print("x is 1");
break;


case 2:

Print("x is 2");
break;


default:

Print("x is not 1 or 2");

break;

}
 

你可能誤解了代碼

加不加的結果 肯定不一樣的 自己實驗看看編譯跟執行的結果 比問人得到的經驗值會更高的

 
Hung Wen Lin #:

你可能誤解了代碼

加不加的結果 肯定不一樣的 自己實驗看看編譯跟執行的結果 比問人得到的經驗值會更高的

感谢回复。我试了结果,打印出来的结果是一样的。我担心我有什么误会,所以上来问一下 :)

 

把参考文档读明白读透,就懂怎么用了。你的问法让人感觉你没读透这个操作符的本意。


 
Lin Luo #:

把参考文档读明白读透,就懂怎么用了。你的问法让人感觉你没读透这个操作符的本意。

唉。。愚钝啊我。我觉得我读懂了,但是不确定我是不是读懂了。按照我的理解,default后面的那个break就是可加可不加的?

 
Junjie Shao #:

唉。。愚钝啊我。我觉得我读懂了,但是不确定我是不是读懂了。按照我的理解,default后面的那个break就是可加可不加的?

  Switch Operator

如果case运算符中的常量都不等于表达式值,则执行由默认default标签标记的运算符。默认变体不一定要声明,也不一定是最后一个。

——这意味着,1.不是可以 加不加break的问题,是整个default这个语句行可以不加。2.按你的意思,如果default该行放最后一行,似乎是可以不加,但得有分号,即单"default:  "将是一个错误的语句,应为 "default:  ;",而如果不是放最后一行,则不加break时,将产生图中  第一个例子中的B or C的运行结果,即文档中的这个说法:“ Switch Operator

带常量的case关键字只是标签,如果为某些case变量执行了运算符,程序将进一步执行所有后续变量的运算符,直到   break 运算符出现。它允许将一系列运算符绑定到多个变体

 
Lin Luo #:
  Switch Operator

如果case运算符中的常量都不等于表达式值,则执行由默认default标签标记的运算符。默认变体不一定要声明,也不一定是最后一个。

——这意味着,1.不是可以 加不加break的问题,是整个default这个语句行可以不加。2.按你的意思,如果default该行放最后一行,似乎是可以不加,但得有分号,即单"default:  "将是一个错误的语句,应为 "default:  ;",而如果不是放最后一行,则不加break时,将产生图中  第一个例子中的B or C的运行结果,即文档中的这个说法:“ Switch Operator

带常量的case关键字只是标签,如果为某些case变量执行了运算符,程序将进一步执行所有后续变量的运算符,直到   break 运算符出现。它允许将一系列运算符绑定到多个变体

非常感谢您的解答!受益!谢谢!

 
加不加都是完全一样的,到最后一句都执行结束

加不加都是完全一样的,到最后一句都执行结束