| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 850 人关注过本帖
标题:一个switch程序帮忙看看
只看楼主 加入收藏
摩登程序猿
Rank: 1
来 自:梦的小镇
等 级:新手上路
帖 子:41
专家分:4
注 册:2013-7-23
结帖率:90%
收藏
已结贴  问题点数:10 回复次数:13 
一个switch程序帮忙看看
程序代码:
#include <stdio.h>
void main()
{ int x=0,y=2,z=3;
  switch(x)
  {case 0:switch(y==2)
    {case 1:printf("*");break;
    case 2:printf("%");break;

     }
   case 1:switch(z)
      {case 1:printf("$");
       case 2:printf("*");break;
       default:printf("#");
      }

  }
}
输出结果是*# 为什么不是一个*呢 不是应该执行完case0后就结束了吗?
2013-08-05 20:42
小小程序猿
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:1
帖 子:755
专家分:2785
注 册:2013-7-18
收藏
得分:7 
以下是引用摩登程序猿在2013-8-5 20:42:25的发言:

#include <stdio.h>
void main()
{ int x=0,y=2,z=3;
  switch(x)
  {case 0:switch(y==2)
    {case 1:printf("*");break;
    case 2:printf("%");break;

     }   因为此处缺少一个break;运行完case 0之后输出一个  *   再接着运行case 1,因为不满足条件再输出一个# 所以最后的结果是*#
   case 1:switch(z)
      {case 1:printf("$");
       case 2:printf("*");break;
       default:printf("#");
      }

  }
}
输出结果是*# 为什么不是一个*呢 不是应该执行完case0后就结束了吗?



不知道你看懂了没有

孤独与寂寞是催化一个人迅速成长的良药,没有之一
2013-08-05 20:55
netaa001
Rank: 2
等 级:论坛游民
帖 子:73
专家分:69
注 册:2013-8-5
收藏
得分:0 
寻找志同道合的一起学习C语言,愿意的进群:330809827。
2013-08-05 21:30
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:0 
又没break

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-08-06 08:13
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:1 
一楼解释的很好,swich套用,外面的少一个break

Maybe
2013-08-06 08:26
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
其实 我不咋习惯用switch

DO IT YOURSELF !
2013-08-06 08:30
摩登程序猿
Rank: 1
来 自:梦的小镇
等 级:新手上路
帖 子:41
专家分:4
注 册:2013-7-23
收藏
得分:0 
回复 2楼 小小程序猿
懂了 花括号后也要加一个break,我以为前面花括号内的break就能起结束的作用

菜鸟出蛋------多多指教.我希望我能在这论坛先坚持三年,那证明我没忘记我的梦
2013-08-06 09:26
小小程序猿
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:1
帖 子:755
专家分:2785
注 册:2013-7-18
收藏
得分:1 
以下是引用摩登程序猿在2013-8-6 09:26:04的发言:

懂了 花括号后也要加一个break,我以为前面花括号内的break就能起结束的作用


懂了就结贴啊

孤独与寂寞是催化一个人迅速成长的良药,没有之一
2013-08-06 10:08
丶弱水彡千
Rank: 5Rank: 5
来 自:地狱十九层
等 级:职业侠客
威 望:2
帖 子:203
专家分:369
注 册:2013-6-16
收藏
得分:0 
多少年没用swich了  break是一个很强大的结束语句  swich语句用  break是结束语句的  要是没有  就会一直执行下去  case 就没用了

这个怎么玩
2013-08-06 11:02
谢跃锋
Rank: 2
等 级:论坛游民
威 望:2
帖 子:50
专家分:77
注 册:2013-4-14
收藏
得分:1 
因为switch(x),所以执行case0即有满足(y==2)所以执行case 1.即打印出*就跳出来了。接下来再执行下面的case 1;switch(z)即执行default,打印出#号。程序结束。
2013-08-06 11:03
快速回复:一个switch程序帮忙看看
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040398 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved