经过刚开始一段时间的学习,感觉几乎所有的C程序都是由if、switch选择语句或者while、do while、for循环语句组成,
可以说熟练掌握这些语句,C程序的骨架基本就有了。越熟练越好当然还得靠做题和敲代码。记笔记就是老师的讲解+自己的理解。
流程控制
顺序结构:默认的流程结构。按照书写顺序执行每一条语句。
选择结构:对给定的条件进行判断,再根据判断结果来决定执行哪一段代码。
循环结构:在给定条件成立的情况下,反复执行某一段代码。
一、选择结构-if使用注意
1> if()括号内比较大小时,常量值放左边,变量放右边
这样不容易误写成赋值语句。
2> 作用域问题:
下面的代码是错误的:作用域不明确
if (10 > 6)
int a = 5;
如果要在if后面的语句中定义新的变量,必须用大括号{}
3> if()括号内只有真假,灵活利用真假可以使判断简单
补充:如果if条件句是返回1和0的情况可以直接用比如
result = b == c;这样的语句成立返回1不成立返回0,直接
代替if语句,来提高性能。
二、选择结构-switch
1.简单使用
switch(表达式) { case 数值1: break; … default: break;}
举例
int a = 10;
switch (a) {
case 0:
printf("这是一个0");
break;
case 5:
printf("这是一个5");
break;
case 10:
printf("这是一个10");
break;
default:
printf("什么也不是");
break;
}
break的作用:退出整个switch语句
在case中定义变量要考虑到作用域的问题:
如果要在case后面定义新的变量,必须用大括号{}包住
2.if和switch的对比
if和switch比较
1> if语句能完成的功能,switch并不一定能完成
int a = 10;
if (a>100)
{
}
2> 在有些情况下,if语句和switch语句可以互换
3> switch能完成的功能,if语句都能完成
if用得比较多,比较灵活,switch只能某个单值
三、循环结构-while
1.简单使用
break
直接结束整个while循环
continue
结束当前的循环体,进入下一次循环体的执行
2.特点
只有条件成立才会执行循环体,如果一开始条件就不成立,永远不会执行循环体。
四、循环结构-do while
特点:一定会执行一次循环体
while和do while循环对比
int i=0;
while(i<0){
i++;
}
int i=0;
do{
i++;
} while(i<0);
最简单的死循环
while(1);
五、循环结构-for
1.简单实用
for (语句1; 条件; 语句2)
{
循环体
}
语句1:初始化语句
语句2:增量语句(执行完循环体后再执行的语句)
1.for一开始就会执行一次语句1(整个for循环只会执行一次)
2.判断条件是否成立,如果条件成立,就会执行一次循环体,然后就会执行语句2,再次判断条件是否成立
for循环嵌套
好友列表1
好友1
好友2
好友列表2
好友1
好友2
好友列表3
好友1
好友2
使用注意:1.不要随便在for()后面写分号
2.如果要在循环体中定义新的变量,必须用大括号{}包住
3.最简单的利用for循环实现死循环for(;;);
break和continue的总结:
break:
1.使用场合
1> switch语句:退出整个switch语句
2> 循环结构:退出整个循环语句
* while
* do while
* for
2.注意点
只对最近的循环结构有效
continue:
1.使用场合
循环结构:结束当前这次的循环体,进入下一次循环体
* while
* do while
* for
2.注意点
只对最近的循环结构有效
可以说熟练掌握这些语句,C程序的骨架基本就有了。越熟练越好当然还得靠做题和敲代码。记笔记就是老师的讲解+自己的理解。
流程控制
顺序结构:默认的流程结构。按照书写顺序执行每一条语句。
选择结构:对给定的条件进行判断,再根据判断结果来决定执行哪一段代码。
循环结构:在给定条件成立的情况下,反复执行某一段代码。
一、选择结构-if使用注意
1> if()括号内比较大小时,常量值放左边,变量放右边
这样不容易误写成赋值语句。
2> 作用域问题:
下面的代码是错误的:作用域不明确
if (10 > 6)
int a = 5;
如果要在if后面的语句中定义新的变量,必须用大括号{}
3> if()括号内只有真假,灵活利用真假可以使判断简单
补充:如果if条件句是返回1和0的情况可以直接用比如
result = b == c;这样的语句成立返回1不成立返回0,直接
代替if语句,来提高性能。
二、选择结构-switch
1.简单使用
switch(表达式) { case 数值1: break; … default: break;}
举例
int a = 10;
switch (a) {
case 0:
printf("这是一个0");
break;
case 5:
printf("这是一个5");
break;
case 10:
printf("这是一个10");
break;
default:
printf("什么也不是");
break;
}
break的作用:退出整个switch语句
在case中定义变量要考虑到作用域的问题:
如果要在case后面定义新的变量,必须用大括号{}包住
2.if和switch的对比
if和switch比较
1> if语句能完成的功能,switch并不一定能完成
int a = 10;
if (a>100)
{
}
2> 在有些情况下,if语句和switch语句可以互换
3> switch能完成的功能,if语句都能完成
if用得比较多,比较灵活,switch只能某个单值
三、循环结构-while
1.简单使用
break
直接结束整个while循环
continue
结束当前的循环体,进入下一次循环体的执行
2.特点
只有条件成立才会执行循环体,如果一开始条件就不成立,永远不会执行循环体。
四、循环结构-do while
特点:一定会执行一次循环体
while和do while循环对比
int i=0;
while(i<0){
i++;
}
int i=0;
do{
i++;
} while(i<0);
最简单的死循环
while(1);
五、循环结构-for
1.简单实用
for (语句1; 条件; 语句2)
{
循环体
}
语句1:初始化语句
语句2:增量语句(执行完循环体后再执行的语句)
1.for一开始就会执行一次语句1(整个for循环只会执行一次)
2.判断条件是否成立,如果条件成立,就会执行一次循环体,然后就会执行语句2,再次判断条件是否成立
for循环嵌套
好友列表1
好友1
好友2
好友列表2
好友1
好友2
好友列表3
好友1
好友2
使用注意:1.不要随便在for()后面写分号
2.如果要在循环体中定义新的变量,必须用大括号{}包住
3.最简单的利用for循环实现死循环for(;;);
break和continue的总结:
break:
1.使用场合
1> switch语句:退出整个switch语句
2> 循环结构:退出整个循环语句
* while
* do while
* for
2.注意点
只对最近的循环结构有效
continue:
1.使用场合
循环结构:结束当前这次的循环体,进入下一次循环体
* while
* do while
* for
2.注意点
只对最近的循环结构有效