java、C语言中default
来源:互联网 发布:sqlserver中的in的用法 编辑:程序博客网 时间:2024/06/05 16:05
我学习编程是从java开始的,简单的学过C,但是许久没用,早已忘得差不多。今天室友提出一个C语言问题,我草草的算了下发现和答案不一样,于是开始细究。代码如下:
<span style="font-size:12px;">#define PRINT(x) printf("%d",x)</span><span style="font-size: 18px;"></span><span style="font-size:12px;">void main(){int i=4,j,x;int a[]={1,2,3,4,5,6,7,8,9,10};for(j=4;j;j--){switch(j){case 1:case 2:x=a[i+1];PRINT(x);case 3:x=a[--i+j];PRINT(x);default:PRINT(j);printf("\n");}}system("pause");}</span>
最开始我算的答案是: 4
7
5
实际答案却是:4
73
55
于是手动把代码敲进ide进行调试,终于发现我的错误所在:
1.我粗心大意没注意没注意case结束的时候没有break;
2.我最初认为default的意思是没找到匹配的case后执行,否则就不执行,但实际上switch中的开关若没有break的话会逐句执行连default也不例外,case3结束时没有break,所以依旧会执行default,第二次循环会输出73。
3.最后还是粗心case2的break后以为跳出循环。。。。所以最后应该输出55.
同时我也在java进行了调试,结果是一样的,附上代码:
<span style="font-size:12px;"><span style="white-space:pre"></span>int i = 4,x;int a[]={1,2,3,4,5,6,7,8,9,10};for(int j=4;j>0;j--){switch (j) {case 1:case 2:x=a[i+1];System.out.print(x);break;case 3:x=a[--i+j];System.out.print(x);default:System.out.print(j);System.out.println("");break;}}</span>
0 0
- java、C语言中default
- C#语言中switch模块case default
- JAVA中调用C语言接口
- java中调用C语言代码
- java中调用C语言代码
- JAVA中调用C语言方法
- Java中调用c语言示例
- C,java语言中初始化问题
- C语言中指针与java
- java程序中调用c语言库
- JAVA中调用C语言接口
- Java中default的两种用法
- java中public,private,protect,default区别
- java中privated public protected default区别
- java中public,private,protect,default区别
- C语言的自动参数提升(default argument promotion)规则
- C语言 - 关于分支语句switch里default语句问题
- C语言switch语句必须包含default分支吗
- onserviceConnected()和startService()
- VC++ 中遇到的一些warnings及其解决方法
- 使用HttpClient登陆网站 抓取页面数据
- hdu1879——继续畅通工程——————【kruskal模板】
- ZooKeeper介绍及典型使用场景
- java、C语言中default
- swift or oc?
- dinner
- 转场动画中的私有type,非常炫酷
- 中遇到的一些warnings及其解决方法
- Android关于EditText,插入字符串到光标所在位置
- 一个简单的hibernate连接oracle数据库例子
- OpenCV学习(十六)之直方图均衡化并画出直方图
- 在linux上像查MSDN一样查man文档