大魔王程序员生成记#03#C语言基础——switch语句,for语句

14 篇文章 0 订阅

switch语句

switch语句是多分支选择语句。用来实现如图所示表示的多分支选择结构语句。

switch语句的一般形式如下:

switch(表达式)
{
case 常量1:语句1
case 常量2:语句2
.     .     .
.     .     .
case 常量n:语句n
default :   语句n+1
}

说明:

(1)switch后面括号内的“表达式”,其值的类型应为整数类型(包括字符型)。

(2)switch下面的花括号内是一个复合句。这个复合句包括若干语句,它是switch语句的语句体。

注:执行switch语句时,先计算switch后面的“表达式”的值,然后将它与各case标号比较,如果与某一个case标号中的常量相同,流程就转到case标号后面的语句。如果没有与switch表达式相匹配的case常量,流程就转去执行default标号后面的语句。

(3)可没有default标号,此时如果没有与switch表达式相匹配的case常量,则不执行任何语句,流程转到switch语句的下一个语句。

(4)每个case标号的出现次序都不影响执行结果。如:

switch(ch)
	{
	default:
		printf("default\n");
	case 'C':
		printf("90-100\n");
		break;
	case 'B':
	        printf("70-80\n");
		break;
	case 'A':
		printf("60-70\n");
		break;
	case 'D':
	printf("不及格\n");
		break;
	}

(5)每个case常量必须互不相同;否则就会出现互相矛盾的现象(对switch表达式的同一个值,有两种或多种执行方案)

(6)case标号只起标记的作用。

注:一般情况下,在执行一个case子句后,应当用break语句使流程跳出switch结构,即终止switch语句的执行。最后一个case子句(今为default子句)中可不必加break语句,因为流程已经到了switch结构的结束处。

if else与switch的区别 

在反汇编中,switch当超过(>=)4个时,会优化成为一个cmp(compare)[指令进行比较两个操作数的大小],而if 不管有多少次比较,都会被一一进行比较,有几次就会产生几个cmp。

for语句

for语句能够实现循环。

for语句的一般形式为;

for(表达式1:表达式2:表达式3)
{
   语句
}

3个表达式的主要作用:

表达式1:设置初始条件,只执行一次,可以为零、一个或多个变量设置初值。

表达式2 :是循环条件表达式,用来判定是否继续循环。在每次执行循环体前先执行此表达式,决定是否继续执行循环。

表达式3:作为循环的调整,例如使循环变量增值,它是在执行完循环体后才进行的。

注:for(循环变量赋初值;循环条件;循环变量增值)

for语句的执行过程:

1.先求解表达式1。

2.求解表达式2。若此条件表达式为真,则执行循环体。

3.求解表达式3。

4.转回执行步骤(2)。

for语句的执行顺序如下图所示:

 附加内容

isalpha():判断一个字符是否为字母            返回非0的值   

isdigit():判断一个字符是否为十进制数字   返回非0的值    

对应头文件<ctype.h>

assert:断言===》DEBUG(VS2012中的模式);Release下断言失效

assert的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行。

两个问题:1.断言使用过吗?2.断言是函数吗?断言不是函数,是宏。     sizeof()是关键字

float和0比较是一个范围,在-0.000001和0.000001之间。如:

if(d>=-0.000001&&d<=0.000001)

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值