程序的控制结构
选择结构
if {} else
- 每层else都要和最近的未配对的if配对
-
if () {} else cout<<a; //else前面要么是分号,要么是花括号
-
if () cout <<A; else //cout之后的分号不写,是语法错误
- if的条件里不能有赋值语句,但是可以有赋值表达式
-
if ((a=b)>0 ) cout<<endl; //合法
-
if ((a=b;)>0 ) //不合法
- 一般是逻辑/关系表达式
- else不是一个独立的语句,是if的子句,不能单独使用,要和if配对,且if 和else算一条语句
switch()
- 适用情况:每次判断的都是同一个表达式的值
- switch(整型表达式)//表达式的值必须是整型,字符型,enum型
- case 常量表达式
-
不能是逗号表达式
-
后面有多个子句,不必加花括号;后面没有子句,就不用加分号
case 1:
case 2:
case 3 : cout<<endl; break;
- 是入口标号,break才是结束点
- 若执行default,后面没有break,会继续执行下面的case语句
表达式1 ? 表达式2 :表达式3
break和continue
- break,continue 称中断语句,其转移位置是系统默认的,不能指定
- break跳出循环体或switch,不会跳出if语句;continue不能单独出现在switch
- 做题要注意标好跳转位置,特别是内嵌循环中的break,continue
- 循环内嵌swicth break
-
只跳出switch,如果循环体内&&switch外有语句,会先执行,再进行下次循环的条件判断
-
continue跳出循环体,如果循环体内&&switch外有语句,不执行,直接进行下次循环的条件判断
循环结构
while()
- 考试注意后面有没有分号,有的话,说明循环体为空(如果语句后是逗号,那就是逗号表达
式) - 同一个问题,能用while 解决,也能用do while解决
do{} while()
for(初始语句;表达式1;表达式2)
- 即可用于循环次数已知,也可用于循环次数未知而只给出循环结束条件的情况
- 三个都可省略,但分号不可省
for( ; ; ) //相当于while(1),死循环
-
初始语句可以是声明语句,也可以是表达式语句
-
执行过程中,循环控制变量的初值,终值都可变,如
for(i=1;i<3;i++) for(j=i+1;j<20-i;j++)