前面讲到的都是顺序结构,顺序结构的意思就是程序从main函数进入,从上到下一行一行的执行,不会落下任何一行,这章的内容就会讲到流程控制相关的几个结构:分支结构、选择结构、循环结构;
分支结构:if if-else 三元表达式
选择结构: if else if switch-case
循环结构:for whie do-while foreach
分支结构
if语句:
语法:
if(判断条件)
{
要执行的代码:
}
判断条件:一般为关系表达式或者bool类型的值
执行过程:程序运行到if处,首先判断if后小括号中的判断条件,若条件成立,则运行要执行的代码;若不成立,则跳过if结构,继续向下执行;
if结构的特点:先判断,后执行,有可能一行代码都不执行
if-else 语句:
语法:
if(判断条件)
{
执行代码1;
}
else
{
执行代码2;
}
执行过程:程序执行到if处,首先判断if后的判断条件是否为true,为true则执行代码1; 为false,则执行代码2;执行完成后,跳出if-else 结构
选择结构
if else-if 语句
作用:用来处理多条件的区间性的判断,所以被分为选择条件结构
语法:
if(判断条件1)
{
执行代码1;
}
else if(判断条件2)
{
执行代码2;
}
.....
else
{
执行代码n;
}
执行过程:程序首先判断第一个if括号好的判断条件1,若为true,则执行代码1,执行完成后,跳出整个if else if 结构; 若为false,则继续向下判断,依次的判断每一个if判断的条件,如果都为false,则看是否有else(else是可以省略的),若有else,则执行else后的代码n,若无else,则直接退出结构什么都不做;
switch case 语句:
用来处理多条件的定值判断
语法:
switch (变量或者表达式的值)
{
case 值:要执行的代码;
break;
case 值:要执行的代码;
break;
...........
default:要执行的代码;
break;
}
执行过程:程序执行到switch处,首先将括号中变量或者表达式的值计算出来,然后拿着这个值依次跟每个case后面所带的值进行匹配,一旦匹配成功,则执行case后的代码,执行完成后,遇break则退出switch case结构;若没有匹配成功,则进入default 执行后面的代码,若没有default,则该结构什么都不做;
对于多个定值都需要同样的代码处理时,代码可以写为:
switch(变量或者表达式的值)
{
case 值1:
case 值2:
case 值3: 要执行的代码;
break;
case 值4:
case 值5:要执行的代码;
break;
default: 要执行的代码;
break;
}
循环结构
while 循环
语法:
while(循环条件)
{
循环体;
}
执行过程:程序运行到while处,首先判断while后的循环条件是否为true,若为true,则执行while的循环体,执行完后,继续判断while后的循环条件,若依然为true,这继续执行循环体,若为false,则跳出while循环; 有可能一遍循环都不执行;
从执行过程来看,写循环一定要赋予其可以推出循环的条件,否则循环条件一直为true,那么循环就会一直循环,也就是死循环,写代码应避免死循环的可能性;
do while 循环
语法:
do
{
循环体;
}while(循环条件);
执行过程:程序首先会执行do中的循环体,执行完成后,去判断do-while循环条件,如果成立,则继续执行do中的循环体,如果不成立,则跳出do-while循环。
特点:先循环,再判断,最少执行一遍循环体。
for循环
语法:
for(表达式1;表达式2;表达式3)
{
循环体;
}
表达式1--一般为声明循环变量,记录循环的次数(int i=0)
表达式2--一般为循环条件(i<10)
表达式3--一般为改变循环条件的代码,使循环条件终有一天不再成立(i++)
执行过程:程序首先执行表达式1,声明了一个循环变量用来记录循环的次数,然后执行表达式2,判断循环条件是否成立,如果表达式2返回的结果为true,则执行循环体,当执行完循环体吼,执行表达式3,然后执行表达式2继续判断循环条件是否成立,如果成立则继续执行循环体,如果不成立,则跳出for循环。
已知循环次数的一般用for循环
三元表达式
语法:表达式1?表达式2:表达式3;
表达式1一般为一个关系表达式
如果表达式1的值为true,那么表达式2的值就是整个三元表达式的值;
如果表达式1的值为false,那么表达式3的值就是整个三元表达式的值;
注意:表达式2的结果类型必须跟表达式3的结果类型一致,并且也要跟整个三元表达式的结果类型一致。
凡是能用if-else能做的事基本都可以用三元表达式来做
break 关键字:
1)可以跳出switch-case结构;
2)可以跳出当前循环结构,也只能跳出当前循环结构;
一般break配合if来使用,满足特定的条件以后break;
continue关键字:
continue关键字: 立即结束本次循环(不再执行continue以后的语句),判断循环条件,如果成立,则进入下一次循环,否则退出循环;