黑马程序员--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:
变量易出问题: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:
相关文章推荐
- C语言中关键字auto、static、register、const、volatile、extern的作用
- 黑马程序员--IOS基础第三天(C语言)
- 黑马程序员--IOS基础第二天(C语言)
- 黑马程序员--IOS基础第一天(C语言)
- C/C++与内存相关的函数
- C语言符号优先级
- 详解c++ 引用(reference)与 指针(pointer)的区别与联系
- 黑马程序员------C语言中scanf的使用
- POJ 1789
- C/C++内存管理详解
- 黑马程序员------C语言中printf使用的注意事项
- [c++]栈模板的实现
- c++学习笔记(二)
- c++学习笔记(一)
- C++ 之 函数模板
- C/C++指针和数组的关系
- iOS C语言1_基本概念
- 在C++中自定义宏的简单方法
- typedef和# define
- C++ HOJ DS Series