|
发表于 2015-7-29 18:00:02
|
显示全部楼层
- #include <stdio.h>
- #define DEBUG1 printf("1.x=%d;y=%d;z=%d;\n",x,y,z)
- #define DEBUG2 printf("2.x=%d;y=%d;z=%d;\n",x,y,z)
- /*IED&Compile:C-Free 5.0;
- *说明:纯属个人理解,忽悠纯属个人业余爱好 ;
- */
- int main(){
- char ch;
- int x=0,y=1,z=0;
-
- do{
- printf("接受输入字符:");
- scanf("%c",&ch);
- (void)getchar();/*这里我不太清楚,以前也遇到过,
- *存在于缓冲区的换行符被送到了下个接受 口中;
- *你可以把这个getchar()注释掉试试看
- *但是我输入1,而后继续输入i,尼玛,然后我就艹了
- *...这个bug,找大神吧。。。
- */
- switch(ch){
- case 'i': case 'I':
- case 'c': case 'C':
- case 'o': case 'O': x++;
- default: y++; z++;
- /*没有break;肯定是一级一级的判断,我想问的是存在case嵌套这种说法吗?
- *不过,没有break;不管是case 'i':...; 还是case 'i': case 'I'..都是一样的
- *如果输入的数据和任意case相同的就会实现x++和y++,z++;
- *如果没有和任意case一样的,就只实现y++,z++(dafault);
- */
- DEBUG1;
- printf("任意键继续...");
- (void)getchar();
- }
- DEBUG2;
- printf("任意键继续...");
- (void)getchar();
- }while( ch!='m' );
-
- printf("x=%d y=%d z=%d", x, y, z);
- getchar();
- return 0;
- }
- //1小时之后,我感觉我应该发布新的问题,我也遇到问题了。。。。。
复制代码
时间:2013年7月29日18:02:38; |
|