语句
C中的语句大致可以分为3类:1.顺序 2.循环 3.分支,顺序语句即正常的从上到下顺序执行的语句流,这里不再过多介绍,下面主要介绍循环和分支。
循环
C中主要有三种循环,while , do while , for
其定义和使用
while
while(判断表达式)
{
循环体;
}
for
for(初始化语句;判断语句;更新语句)
{
循环体;
}
do while
do
{
循环体
}while(判断表达式);
在上述语句中,要特别注意循环的执行范围,即注意循环体中的分号“;”,或大括号“{}”,所表示的循环体的范围,如果不加大括号,分号“;"即表示循环体的结束。正常使用时,尽量把循环体都使用大括号括起来,这样更易于区分循环体与循环体后的顺序语句,提高程序的可读性。
三个循环都可以实现同样的功能,但三者各有特点,do while循环叫做出口条件循环,即先执行一次循环,再判断条件,循环体至少可以被执行一次,while 和 for 为入口条件循环,即先判断条件,再执行循环,循环体可能一次都不执行。
相比于do while , for 和 while 更加常用,for,语句适用于需要初始化和更新的场合,程序结构比while更加紧凑。whil结构比较简单,易于理解。
运算符
循环和分支的判断与更新语句中经常要用到运算符,运算符需要注意的有两点,一是类型,即属于单目运算符、双目运算符还是三目运算符,二是优先级。
1.算数运算符:+ 加、- 减、* 乘、/ 除、% 余、++ 加加、--减减
2.关系运算符:< 小于、> 大于、 <= 小于等于、>= 大于等于、 == 恒等于、 !=不等于
3.赋值运算符:= 等于、+= 加等、-= 减等、*= 乘等、 /= 除等、%= 余等
4.逻辑运算符: && 与、 || 或、! 非
5.位运算符: & 与 、| 或、~ 取反、^ 异或、<< 左移、>> 右移
6.条件运算符: ? :
7.字节运算符: sizeof()
8.括号运算符: ()
下表列出了运算符的优先级
分支
C中的分支语句主要有if语句和switch语句
if语句
1. if(条件)
{
语句;
}
2.if(条件)
{
语句;
}
else
{
语句;
}
3. if(条件)
{
语句;
}
else if(条件)
{
语句;
}
else
{
语句;
}
if语句大概有以上三种用法,第三种原则上可以无限嵌套下去,但一般情况下只用到两层到三层嵌套,如果分支太多,就需要用到switch语句。
switch (整形表达式)
{
case 常量1:语句一;
break;
case 常量2:语句二;
break;
case 常量3:语句三;
break;
........
default : 未查找到时的语句;
}
switch语句会逐一检查哪个case和switch条件相同,如果相同,便从这个case语句开始执行,一直到程序结束,这意味着这个case以下的case语句都会被执行,因此需要在case语句后面加上break,意思是执行完这个case后就跳出,不再执行下面的语句。但是如果需要执行下面的语句,就不用写break语句,其中,最后的default语句也可以省略。
注意switch语句中的条件只能是整形表达式,包括“char”类型,如果是浮点数,则不能使用switch语句,
跳转语句
跳转语句主要有break语句,continue语句,goto语句。goto语句基本上不用,这里不再介绍。
1. break; // 结束循环函数,执行循环后面的语句
2.continue; // 结束本次循环,开始下一次循环
位运算
位运算符有:& 与、| 或、~ 非、^ 异或、<< 左移、>> 右移,在C语言计算中,位运算很少使用,但是在工程中位运算必不可少。
与、或、非(取反)就不多说了,^ 异或运算符会逐位比较两个运算对象,相同为0,相异为1,移位运算符操作的都是二进制数,<< 左移运算符将运算对象向左移位,低位舍弃,高位补0,>> 右移运算符将运算对象向右移位,高位舍弃,低位补0.
& 与运算特性是和0相与后结果为0,和1相与后不改变,因此经常用来做掩码或将某个位置0,置0某个位时一般搭配~ 取反运算符;
| 或运算特性是和1相或后结果为1,因此经常用来将某个位置1;
^ 异或运算符的特性是和1相异或后,结果为相反数,例如,0^1=1, 1^1=0; 因此经常用来切换某个位。
<< 左移 、>> 右移 通常与上面的四种运算符搭配用来精准的控制某些位,其次还要注意,在不溢出的前提下,<< 左移n位相当于乘以2的n次幂,>> 右移n位相当于除以2的n次幂。
持续更新中.........