case和default的 顺序问题!!!

来源:百度知道 编辑:UC知道 时间:2024/05/21 10:00:07
default:y=3*x-11;
case 0:y=x;break;
case 1:y=2*x-1;break;
和case 0:y=x;break;
case 1:y=2*x-1;break;
default:y=3*x-11;
是不是一样效果呢?case和default的顺序不会影响结果?为什么呢?

建议你自己上机调试一下就全明白了;
switch 有很关键的一条就是break;
你的第一个程序没有一个break;
所以不管怎么样,最后都会执行case 1:y=2*x-1; 计算机可不管什么defaut
对switch是自上而下一条一条执行的,如果满足条件且有break,则跳出,注意,满足条件和break缺一不可,否则它将执行到最后一条

现在开始解答这两个程序的输出,假设都是满足case 0的条件;
首先应该给x一个值,我们假设为 2
因为你两个程序都没有加一个break,
根据上述说法,
第一个程序的结果应该是 3,
第二个程序的结果应该是 -5;
如果两个程序都加上三个break的话,结果分别为:
2 和 2

综上,计算机不认识什么default,在后面加break也没有用

效果一样,不影响,
因为case是一个标记,switch要把各个case标记都查一遍看是否有符合,如果有,就执行当前标号以后直到到遇到第一个break的所有语句,如果没有才执行default语句.