各case和default子句的先后顺序可以变动,而不...

来源:百度知道 编辑:UC知道 时间:2024/05/25 03:23:04
而不影响运行结果吗.如
main()
{
int i;
for(i=1;i<=5;i++)
switch(i%5)
{
case 0: printf("*"); break;
case 1: printf("#"); break;
case 2: printf("&");
default: printf("\n");
}
getch();

main()
{
int i;
for(i=1;i<=5;i++)
switch(i%5)
{
case 0: printf("*"); break;
case 1: printf("#"); break;
default: printf("\n");
case 2: printf("&");
}
getch();

但是它们的运行结果不同啊.
一个是 #&
&
&*

第二个是
#&

*

#include<stdio.h>
#include <conio.h>
#include <stdlib.h>

#define N1

#ifdef N1

void main()
{
int i;
for(i=1;i<=5;i++)
switch(i%5)
{
case 0: printf("*"); break;
case 1: printf("#"); break;
case 2: printf("&"); break;
default: printf("\n"); break;
}
getch();
}
#else
void main()
{
int i;
for(i=1;i<=5;i++)
switch(i%5)
{
case 0: printf("*"); break;
case 1: printf("#"); break;
default: printf("\n"); break;
case 2: printf("&"); break;
}
getch();
}
/*
那是因为你的break语句没有写全造成的。你把我修改后的程序那回去试试,除了最后一个语句外,都应该加上break;
*/
#endif