一个简单的程序:我想让它执行了 default:printf("输入错误!!\n"); 后就不再执行
printf("b=%d\n",b);
因为现在就算它显示“输入错误!!”后还是会显示“b=…”,
让它显示了输入错误就不再显示b=…
谢谢!!
#include<stdio.h>
void main()
{
int a,b;
printf("请输入一个整数(1——3):");
scanf("%d",&a);
switch(a)
{
case 1:b=1;
break;
case 2:b=3;
break;
case 3:b=2;
break;
default:printf("输入错误!!\n");
}
printf("b=%d\n",b);
}
因为你把 printf("b=%d\n",b); 放在了switch(){。。。}的外面,switch结束后,无论a是什么值,都会执行printf("b=%d\n",b);
所以可以把printf("b=%d\n",b); 写在每一个case中 包括default里。default中也要写break;
#include<stdio.h>
void main()
{
int a,b;
bool isdefault = true;
printf("请输入一个整数(1——3):");
scanf("%d",&a);
switch(a)
{
case 1:b=1;printf("b=%d\n",b);
break;
case 2:b=3;printf("b=%d\n",b);
break;
case 3:b=2;printf("b=%d\n",b);
break;
default:printf("输入错误!!\n");
break;
}
}
或者加一个判断
#include<stdio.h>
void main()
{
int a,b;
bool isdefault = true;
printf("请输入一个整数(1——3):");
scanf("%d",&a);
switch(a)
{
case 1:b=1;isdefault = true;
break;
case 2:b=3;isdefault = true;
break;
case 3:b=2;isdefault = true;
break;
default:printf("输入错误!!\n");isdefault = false;break;
}
if(isdefault == true)
{
printf("b=%d\n",b);
}
}