今天编程用switch发现一个问题,算了,先贴源程序再说问题吧。
 1 #include <stdio.h>
 2 int main(int argc, char * argv[])
 3 {
 4   int t = 0;
 5   switch (  t  )
 6     {
 7     case -1 :
 8       printf ( "test\n" );
 9     case 0:
10       printf ( "the postgresql server has been started by myself\n" );
11     default:
12       printf ( "the postgresql server can not be started ,please install it firse\n" );
13       exit ( 0 );
14     }
15 
16 }
17 编译运行,其输出结果如下:
the postgresql server has been started by myself
the postgresql server can not be started ,please install it firse
但是,大家知道我想要的不是这个结果,不是这个结果啊
那问题出在哪儿呢?我找了半天,似乎解决了,更改后的源程序如下
 1 #include <stdio.h>
 2 int main(int argc, char * argv[])
 3 {
 4   int t = 0;
 5   switch (  t  )
 6     {
 7     case -1 :
 8       printf ( "test\n" );break;
 9     case 0:
10       printf ( "the postgresql server has been started by myself\n" );break;
11     default:
12       printf ( "the postgresql server can not be started ,please install it firse\n" );
13       exit ( 0 );
14     }
15 
16 }
17 更改后编译运行结果如下
the postgresql server has been started by myself
嗯,这才是我要的结果
那两段源程序的区别在哪儿呢?
在于我加了break。