标题:谁能帮我看一下 为什么会输出这样的结果
只看楼主
lzxm160
Rank: 1
等 级:新手上路
帖 子:103
专家分:0
注 册:2006-12-26
 问题点数:0 回复次数:2 
谁能帮我看一下 为什么会输出这样的结果
#include<stdio.h>
    void main()
    { static char s[]="SSSWiL TECH1\1\11W\1WALLMP1";
      int j;
      char ch;       clrscr();
      for(j=2;(ch=s[j])!='\0';j++)
      { switch(ch)
          { case 'A':putchar('a');continue;
        case '1':break;
        case 1:while((ch=s[++j])!='\n'&&ch!='\0');
        case 9:putchar('#');
        case 'E':
        case 'L':continue;
        default:putchar(ch);continue;
          }
          putchar('*');
      }
      printf("\n");
    }



输出:SWI TCH*#这个是TC运行结果  可是为什么会是*#呢
搜索更多相关主题的帖子: case putchar continue 结果 输出 
2008-01-16 21:11
way3
Rank: 1
来 自:湖南
等 级:新手上路
帖 子:83
专家分:0
注 册:2007-12-8
得分:0 
仔细想一下,     putchar('*');也是for循环的一部分,在循环的过程中弄明白什么情况下会运行到这一语句来,什么时候不会运行到这一语句来就会知道了.

[[italic] 本帖最后由 way3 于 2008-1-16 21:58 编辑 [/italic]]
2008-01-16 21:57
nobush
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2008-1-10
得分:0 
呵呵,開始我也被結果嚇了一跳。
仔細一看:
遇到字符1 只是退出了switch 沒有退出for
而遇到數字1 則跳過了所有字符,但沒有退出,所以才有了下一行的 #
2008-01-17 01:40



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-197696-1-1.html




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

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