switch...case...的用法

       仍旧先看两端代码:

if...else...
void main()
{
   char ch;
   uint count1=0;
   uint count2=0;
   uint count=0;
   while((ch=getchar())!='#')
   {
	   if(ch==' ')
			count1++;
	   else if(ch=='\n')
			count2++;
	   else	 
		   count++;  
	       
   }
   printf("空格数:%d\n换行数:%d\n总字符数:%d\n",count1,count2,count);
switch...case...

//统计输入字符数,换行数以及空格数。

void main(){
	int count1=0;
	int count2=0;
	int count=0;
	char ch;
	while((ch=getchar())!='#')
	{
			switch(ch)
			{
	    		case ' ' : count1++;break;
				case '\n': count2++;break;
				default:count++;break;
			}	
	}
	printf("空格数:%d\n换行数:%d\n总字符数:%d\n",count1,count2,count);
}

       例如不是a就是b,这样使用if...else...就很简单可以实现,如上面的情况一。但如果情况是这样的呢,如果不是a可能是b也可能是c或者d,抑或随意能想到的那个可选项,这种情况怎么处理?如果使用if...else...嵌套实现就可能降低程序的可读性。而且我们自己在编程的时候也可能搞混乱,方法就是使用  switch...case...,如上面的情况二。下面介绍switch语句的用法。

       switch...case...语句用来处理多重选择,它的基本用法如下:

switch(判断表达式或变量)
{
     case 常量1:表达式1;break;
     case 常量2:表达式2;break;
     ........
     case 常量n:表达式n;break;
     default:表达式;break;
}

        值得注意的是不能使用变量作为case的标签。其中case之后表达式可选择缺省。执行过程是当程序扫描至标签列表(case1等),找与switch后圆括号里值相匹配的值,然后执行相应的动作,也就是case后面的紧跟的表达式。标签匹配怎么办那就直接跳转至default语句,如果default语句缺省,程序跳转出switch语句,继续向下执行。那break有什么作用呢?其实它的作用就导致程序跑出switch语句,如果没有break语句,相匹配的语句到switch末尾的每一条语句都将被执行

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值