您的位置:首页 > 编程语言 > C语言/C++

黑马程序员--IOS基础第四天(C语言)

2015-07-15 10:44 274 查看


变量易出问题:1)使用前未初始化 
2)两个整形数做减法(b=1-1.5;//b=0)

程序的结构有三种:顺序结构、分支结构、循环结构

分之语句if的使用:

格式:

     if(表达式/常量/变量)

     {
语句块1;
}

 
原理:先计算小括号中的表达式的值。为真(1),会执行大括号语句,为假(0),不执行

if。。。else。。。语句:

格式:

 If(表达式/常量/变量)

      { 语句块1; }

       else

{语句块2;}

原理:先计算小括号中表达式的值。为真(1),会执行块语句1,为假(0),执行语句块2

注意:不管真假,都会执行一个语句块

if语句的高级用法:

如果表达式1位真,则执行语句块1,否则判断表达式2,如果为真执行语句块2,否则再判断表达式3,如果真执行语句块3,当表达式1,、2、3都不满足,会执行最后一个else语句

if语句使用注意点:、

if(条件)可以直接写分号”;”,表示什么也不干。例如:if(a>3);

如果if之后的代码块只有一句话,可以省略大括号。例如:if(a>2)printf(“a>2”)

永真式和永假式:if(1){永远执行};if(0){绝不执行};

if语句结合return语句:

int a=3;if(a==3)return 0;//在一个函数中,return语句之后的语句都不会执行

if作用域的问题:

  if(a==3){ int num=10;}

printf(“%d”,num);//打印不出num,因为num仅在if语句中,if结束后,内存清空,不再有num

容易疑惑的地方,作用域的紊乱:if(a==3)int num=10;//错误 

Switch分之语句:

使用格式

Switch(表达式){

Case 常量表达式1:语句1;

Case 常量表达式2:语句2;

。。。。

case 常量表达式n:语句n;

default:语句n+1;

}

语义是:计算表达式的值,并逐个与其后的常量表达式比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。

Case语句的穿透问题:某个case语句执行后,并没有结束,而直接向下执行其他的case语句。这种现象就称之为case穿透。

如何方式case穿透?:我们只需在每一个case语句结束之后,加上一句break。

Break 作用是结束switch语句

Switch(表达式){

Case 常量表达式1:语句1;break;

Case 常量表达式2:语句2;break;

。。。。

case 常量表达式n:语句n;break;

default:语句n+1;

}

If语句和switch语句的选择:

分之比较多且无法穷尽或进行大量列举时,最好用if

如果分支不是很多,但是使用if代码代码量比较大时,可以选用switch。

Switch使用注意事项:

switch语句的表达式类型:a
可以放一个整型变量b可以放一个整型常量switch(10)

c 可以放一个返回值是整型的表达式switch(5+5)

d 可以放可以转化为int类型的表达式switch(‘a’)

功能代码部分可以写任意多句:

Case语句可以有任意多句,可以不用加括号“{}”

break语句是可选的,可以加,也可以不加。

case语句的注意事项:

可以是常量 
case 10;

如果放表达式,那么只可以是常量表达式 case 5+5;

Default语句的位置可以任意放,不一定要放在最后

Case的穿透问题,同样适用于default语句

如果default语句放在switch语句的最后,可以不加break。放其他位置,必须加break

Case后面不能是实数

Case 语句之后,默认的第一句话不能定义变量。如果第一句话非要定义,应该加大括号

编译器bug:

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: