黑马程序员技术交流社区

标题: c语言控制 [打印本页]

作者: 111111111111    时间: 2016-6-2 21:43
标题: c语言控制
发表于 2015-3-31 14:07:33 | 只看该作者 回帖奖励
C语言流程控制
一、     流程结构分类
                     i.           顺序结构:按照代码从上到小的顺序执行代码
                   ii.           选择结构:对给定条件进行判断,决定执行哪段代码
                  iii.           循环结构:在给定条件成立的情况下,反复执行某段代码
二、     选择结构:
a)      if
                     i.           if第一种结构
if(条件)
{
   语句;
}
如果条件成立(为真)执行大括号里所有代码
如果条件不成立(为假)不执行if语句
                   ii.           if第二种结构
if(条件1)
{
   语句;
}
else
{
}
如果条件1成立(为真)执行if后面大括号里所有代码
如果条件1不成立(为假)执行else后面大括号里的所有代码
                  iii.           if第二种结构
if(条件1){
   语句1;
}
else if (条件2){
   语句2;
} ……
else{
}
从上向下顺序验证,哪个条件成立,执行哪个条件后面的代码块,如果所有条件都不成立,执行else后面的代码块
1.同时只会有一个代码块会被执行,不能出现两个条件同时成立的情况(会报错)
2.当顺序验证条件时,条件成立后,下面的条件将不会再继续验证。
                  iv.           if第四种结构
if(条件1)
   语句1;
   语句2;
条件成立执行if后的第一条语句,即语句1,其它语句即语句2,与if无关。
                   v.           if使用注意
1.       赋值符号“=”和等于号“==”不要混淆
2.       if语句后面不要加“;”分号,否则会导致死循环
3.       定义变量时,注意作用域的大小区分,若再if后面定义新的变量,要用大括号括住,否则会导致变量作用域不明确而报错。
4.       在if的条件里,若比较相等,把常量写左边,变量写右边,这样可以防止“=”和“==”混淆后编译器不报错,常量在左边如果混淆则会报错。
b)     switch
                     i.           基本结构
switch(数值)
{
case 数值1:
{
   语句1;
break;
}
case 数值2:
{
   语句2;
break;
}
……
default:
{
语句3;
break;
}
}
1.       顺序依次判断switch后的数值等于大括号里case后的哪个数值,等于哪个数值就执行哪个case后的语句。
2.       break退出整个switch函数
3.       如果一个条件成立的case后面没有break,就会一直向下运行,执行所有case(无论条件是否成立)后面的语句,直到遇到break为止。
4.       如果要在case后定义新的变量,要用{}括住,否则会导致变量作用域不明确。
                   ii.           使用注意
1.       switch();括号里面的内容可以使字符“+”“-”“*”“/”,英文字母等
c)      switch和if对比
1.       判断的时取值范围,不能转化为数值时,或者数值量大时,用if语句。
2.       if语句能完成的功能,switch语句不一定能完成,
3.       switch语句能完成的功能,if语句一定能完成相应的功能。
三、     循环结构
a)      while
                     i.           基本结构
while(条件)
{
    语句;
}
如果条件成立,执行语句,再次判断条件是否成立,再执行语句,直到条件不成立,跳出循环。
                   ii.           怎么用
1.       先确定需要重复执行的操作
2.       再确定约束条件(即重复的次数)
3.       定义一个技术变量(记录重复执行的次数)
                  iii.           continue  跳出本次循环进入下一循环
break    跳出循环结构体
                  iv.           continue
1.       在特定条件下,跳出本次循环进入下次循环,条件自己设定
                   v.           break
1.       在特定条件下,结束循环结构。
                  vi.           运行原理
1.       如果一开始条件不成立,永远不会执行循环体
2.       如果条件成立,就会执行一次循环体,执行完毕,再次判断条件是否成立,循环执行,直到条件不成立。
                vii.           while使用注意
1.       死循环程序,用ctrl + C退出
2.       while语句后面不要跟分号,否则会引发死循环
3.       最简单的死循环:while(1);
b)     do-while循环
                     i.           结构:
do
{
    语句;
}while(条件);
无论条件是否成立,先执行一次循环语句,再判断条件是否成立
                   ii.           while和do-while的区别
1.       很多情况下:while和do-while可以互换
2.       特点
a)      while特点:如果一开始条件不成立,不执行循环体
b)     do-while特点:无论一开始条件是否成立,都会先执行一次循环体。
c)      for循环
                     i.           结构:for(语句1;条件;语句2)
1.       语句1:叫做初始化语句,也可以写在for循环前面,语句2:叫做增量语句,是执行完循环体后再执行的语句
2.       for一开始就会执行一次语句1,整个for循环只会执行一次
3.       判断条件是否成立,如果条件成立就会执行一次循环体,然后执行增量语句,再次判断是否成立,直到条件不成立,退出for循环
4.       用for循环可以做while循环做得所有功能
5.       逗号表达式:在两个语句之间用逗号链接,可以组成一个顺序运行的大语句
                   ii.           for循环语句使用注意
1.       在for循环后不要加分号,因为for循环后面不直接跟大括号时,默认把最近的一个语句作为循环体,分号相当于一条空语句
2.       在for循环体内定义新的变量,一定要定义在大括号内,否则会导致变量作用域不明确
3.       循环结构for(;;)小括号里面的变量作用域,比循环体大括号内的变量作用域大
4.       最简单的for西循环for(;;);
                  iii.           for循环嵌套使用
1.       for循环嵌套for循环
a)      如果输出的图形为几行几列,则第一个for循环控制行数,第二个for循环控制列数
四、     流程控制总结
a)      if 选择结构:
                     i.           在同一时间内,只有一个语句会被执行,如果所有条件都不成立,则执行else后的语句
b)     switch选择结构:
                     i.           默认情况下,只有一个case后面的代码会被执行
                   ii.           如果一个case的条件成立且这个case后面没有break,就会按顺序执行后面case中的语句,直到遇到break未知
                  iii.           如果要在case后面定义一个新的变量,一定要用大括号括住
                  iv.           在switch语句中不能缺少break和default语句





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2