首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

一个while里边嵌套switch的结构,很坑爹的结果

2012-09-07 
一个while里面嵌套switch的结构,很坑爹的结果代码:C/C++ code#includestdio.h#includecurses.hvoid in

一个while里面嵌套switch的结构,很坑爹的结果
代码:

C/C++ code
#include<stdio.h>#include<curses.h>void initial();void main(){int i=0;int a=10;initial();for(i=0;i<4;i++){move(a,15);printw("this is a line");a++;}printw("good!");a=a-4;move(a,15);//do//{int b=10;int ch;ch=getch();switch(ch){case KEY_UP:--b;move(b,15);printw("%d",b);break;//case KEY_DOWN://++b;//endwin();//break;default:printw("%d--",b);continue;}--b;printw("fuck--%d",b);//}while(1);}//end of mainvoid initial(){initscr();cbreak();nonl();noecho();intrflush(stdscr,FALSE);keypad(stdscr,TRUE);refresh();}

原设计要不停循环,变换b的值,改变坐标。可是呢b的值只变了一次,就不再变了。坑爹啊。怎么解决?

[解决办法]
int b=10;
这一句放到do while循环外面去。
[解决办法]
你把这句 int b=10;放到do-while前面定义试试。
[解决办法]
C/C++ code
#define KEY_UP 'a'  //我下面将 ch 改成char类型了int b = 10;  //放到main函数外面,作全局变量char ch;  //我改成char类型了 ch=getchar();
[解决办法]
实在不理解楼主的意思,再不行就算了。
C/C++ code
#include<stdio.h>int main(){int i=0;int a=10;for(i=0;i<4;i++){puts("this is a line");a++;}puts("good!");a=a-4;int flag=0;do{int b=10;int ch;flag=0;while(1) {  ch=getchar();  scanf("%*[^\n]");  scanf("%*c");//清空回车,getch()不需要这一步  switch(ch)  {    case 'a':    --b;    printf("%d\n",b);    break;    default:   flag=1;  printf("%d--\n",b);  }  if(flag==1)    break;}if(flag==1) continue;--b;printf("fuck--%d\n",b);}while(1);} 

热点排行