广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 5831 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
1234561231
个人文章 个人相簿 个人日记 个人地图
路人甲
级别: 路人甲 该用户目前不上站
推文 x0 鲜花 x8
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x0
[C/C++][讨论] switch的意思用法
请问switc ..

访客只能看到部份内容,免费 加入会员 或由脸书 Google 可以看到全部内容



献花 x0 回到顶端 [楼 主] From:台湾中华电信股份有限公司 | Posted:2012-01-07 19:51 |
kb041204
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x14
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

// 其实switch 好像 if...elseif...else

switch(变数)
{ //记紧开括号!!
case 数值:
//如果变数是数值时要做的指令
break;

case 数值2:
//如果变数是数值2时要做的指令
break;

case 数值3:
//如果变数是数值3时要做的指令
break;

// 可以更多

default:
//如果变数不是以上全部的数值便要做的指令
break;

} //记紧关括号!!

此文章被评分,最近评分记录
财富:50 (by ebolaman)


我用晒D钱来买威望 =,=
献花 x1 回到顶端 [1 楼] From:没有资料 | Posted:2012-01-07 22:02 |
ebolaman 手机 会员卡
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖

级别: 副版主 该用户目前不上站
版区: 程式设计
推文 x38 鲜花 x458
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

参考

http://caterpillar.onlyfun.net/Gossi...chStatement.html






Switch 就是看例如 switch (a) 括号内的 a 的值 是什么

然后就跑到底下 Case 中对应的数字,假如没有对应的 case 会跑到 default

case N 很像是进入点,所以为什么要加 break ? 因为不加 break 程式会继续跑下去,底下的其他 case 中的东西也会被跑到,那就不是预期的结果了

我用两张图来表示



第一,没有在 case 最后加入 break,会发生什么事?




范例一:
复制程式
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a = 5;

    switch (a)
    {
    case 5:
        printf("5 is here\n");
    case 6:
        printf("6 is here\n");
    default:
        printf("default!!\n");
    }

    getchar();
}


就像溜滑梯一样,程式判断 a 是 5,然后就跑到 Case 5: 的进入点

接着就往下滑,case 6 和 default 都会跑到




第二,有加入 break;




范例二:
复制程式
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a = 5;

    switch (a)
    {
    case 5:
        printf("5 is here\n");
    break;
    case 6:
        printf("6 is here\n");
    break;
    default:
        printf("default!!\n");
    }

    getchar();
}


那么跑完成 printf("5 is here\n"); 遇到 break; 就会跳出 switch 的结构

不过要不要加 break; 还是要看你要设计什么

此文章被评分,最近评分记录
财富:100 (by 三仙) | 理由: ^^ 因为您的参与,让程式设计更容易!!


My BOINC stats :

献花 x1 回到顶端 [2 楼] From:台湾教育部 | Posted:2012-01-07 23:46 |
kb041204
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x14
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

我加break是因为我写程式的软件不加break的话不知为何会继续运行下去...


我用晒D钱来买威望 =,=
献花 x0 回到顶端 [3 楼] From:没有资料 | Posted:2012-01-08 00:27 |
1234561231
个人文章 个人相簿 个人日记 个人地图
路人甲
级别: 路人甲 该用户目前不上站
推文 x0 鲜花 x8
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

了解.另外问大家一个问题按键要怎绑定啊
要用到哪个语法


献花 x0 回到顶端 [4 楼] From:台湾中华电信股份有限公司 | Posted:2012-01-08 08:11 |
kb041204
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x14
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

问题按键即是甚么?


我用晒D钱来买威望 =,=
献花 x0 回到顶端 [5 楼] From:没有资料 | Posted:2012-01-08 23:07 |
LASER10227
个人头像
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x2 鲜花 x8
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

补充:

若是你在switch statment中任一个case有做declare的话,

请记得每个case都要加上program block {}

例如...

switch(n)
{
  case 1:
          int i;
          ...
          break;

这样compiler不会给你过,这所为的cross initialization
因为你宣告的所以变数,在下一个case时lifetime还是存在的,所以要记得
加上大括号{}


献花 x0 回到顶端 [6 楼] From:台湾中华电信股份有限公司 | Posted:2012-01-13 17:33 |

首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.057209 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言