#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; |