目录
一、if条件语句
1. 简单if条件语句
简单if语句的基本结构如下:
if (条件) //条件为逻辑值,判断真假
{
语句; //条件为真时,执行这里的语句,否则不执行语句
}
注意:if()后面没有分号,直接写{}
2. 简单if-else语句
简单if-else语句的基本结构如下:
if (条件) //条件为逻辑值,判断真假
{
语句; //条件为真时,执行这里的语句
}
else
{
语句; //条件为假时,执行这里的语句
}
3. 多重if-else语句
多重if-else语句的基本结构如下:
if (条件1) //条件为逻辑值,判断真假
语句; //条件为真时,执行这里的语句
else if(条件2)
语句; //条件为真时,执行这里的语句
else
语句; //条件为假时,执行这里的语句
语义是:依次判断条件的值,当出现某个值为真时,则执行对应语句,否则向下执行。
注意:当某一条件为真的时候,则不会向下执行该分支结构的其他语句。
4. 嵌套if-else语句
嵌套if-else
语句的意思,就是在if-else
语句中,再写if-else
语句。
嵌套if-else语句的基本结构如下:
if (条件1)
{
if (条件2)
{
语句:
}
else
{
语句;
}
}
else
{
语句;
}
二、switch语句
1.switch语句的概念
switch语句是更简洁的选择结构,对给定的条件进行判断,再根据判断的结果来决定 执行哪一段的代码。
2.switch语句的基本结构
switch语句的基本结构如下图:
3.switch语句的示例
switch语句的示例如下图:
4.switch语句分支合并技巧
5.switch语句的实验小结
—switch仅适应于离散变量或值(整数值)
—case是分支入口,匹配成功后执行case下的语句
—当语句全部执行后,需要使用break跳出执行分支
三、while循环
while循环语句基本结构如下 :
while(条件)//条件为逻辑值,判断真假
{
循环语句;
}
while语句的语义是:计算表达式的值,当值为真(非零)时, 执行循环语句。
1. 循环条件必须被改变,否则循环永远不会结束(例如:while(1))
2. 循环体如果包括有一个以上的语句,则必须用{}括起来,组成复合语句。
四、do...while循环
do...while循环语句基本结构如下 :
do
{
执行语句;
}while(条件);//注意这里有分号
do-while循环语句的语义是:先执行循环中的执行语句,然后再判断while中条件是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while循环至少要执行一次循环语句。
1. do...while可以看作一条语句,需要以分号结束
2. do...while先执行循环体再判断循环条件
五、for循环
for循环循环语句基本结构如下 :
for(0.初始化循环变量;1.循环条件;3.改变循环变量)
{
2.循环体;
}
1. 先执行语句0,初始化循环变量
2. 判断语句1,若其值为真(非0),则执行for循环体中执行代码块,然后向下执行;若其值为假(0),则结束循环;
3. 执行语句3,改变循环变量的语句;
4. 继续执行for循环中执行代码块后执行第二步;第一步初始化只会执行一次。
5. 当循环结束,程序继续向下执行。
六、三种循环的比较不同
while, do-while和for三种循环在具体的使用场合上是有区别的,如下:
在知道循环次数的情况下更适合使用for循环;
在不知道循环次数的情况下适合使用while或者do-while循环:
—如果有可能一次都不循环应考虑使用while循环
—如果至少循环一次应考虑使用do-while循环。
但是从本质上讲,while,do-while和for循环之间是可以相互转换的。
七、break语句
1、break语句可以结束当前循环的执行
2、执行完break语句后,循环体中位于break语句后面的语句就不会被执行
3、在多重循环中,break语句只向外跳一层
只能在循环体内或switch语句中使用break语句
八、continue语句
continue语句的作用是结束本次循环开始执行下一次循环。
break语句与continue语句的区别是:
break是跳出当前整个循环,continue是结束本次循环开始下一次循环。
九、signed与unsigned
1.当程序运行时,如果发生了越界:
—大于类型最大值时,则:运行结果回转到最小值附近
—小于类型最小值时,则:运行结果回转到最大值附近
我们应该如何解决这个问题呢,请看下面学的signwd与unsigned新知识
2.有符号与无符号
整数数据可以主动声明其“符号特性”
—signed int
范围:-2147483648~2147483647
—unsigned int
范围:0~4294967295
注意:signed int和unsigned int所能表示的整数个数是一样的,只是最大值和最小值不同
十、再论数据类型
我们先来看下这两个问题
—数据类型之间的本质差异是什么
—为什么会有不同的表示范围
1.C语言中的sizeof关键字
—功能:用于获取类型或者变量所占用的内存大小(字节)
—用法:a. sizeof (type)
b. sizeof (variable)
c. sizeof variable
int main()
{
int s = sizeof (short);
int v = sizeof (s);
int z = sizeof s;
return 0;
}
2.C语言中的奇葩整型(long)
1.long在使用不同编译器时,可能占用的内存不同
2.long通常占用4个字节,也可能占用8个字节
3.long long表示整型,固定占用8个字节
4.long long是long long int的缩写形式
3.数据类型的本质区别
—因为占用的内存大小不同,所以可表示的范围不同
—不同类型的数据,在内存中使用不同的表示法