程序流程结构
分类:
顺序结构,选择结构,循环结构
选择结构
注意:break和continue不可以用于退出if条件判断
if语句
单行if语句
if(判断条件)
{
执行语句
}
if (score >= 600) {
cout << "your score is" << score<<endl;
cout << "PASS";
}
多行if语句
if(判断条件)
{
要执行的语句
}
else
{
要执行的语句
}
if (score >= 600) {
cout << "your score is" << score << endl;
cout << "PASS 600";
}
else {
cout << "NOT PASS 600 ";
}
多条件if语句
if(判断条件)
{
要执行的语句
}
else if(判断的其他条件)
{
要执行的语句
}
else
{
要执行的语句
}
注释:else为除了if和else if 剩下的情况
if (score >= 600) {
cout << "your score is" << score << endl;
cout << "PASS 600";
}
else if((600>=score)&&(score>=500)){
cout << "PASS 500 Not PASS 600";
}
else {
cout << "not pass 500";
}
注意:if后面不得加;,否则直接执行后面片段而不经过判断
两个判定条件不能连续大于小于,否则不生效,需要用逻辑运算符分开
三目运算符
(表达式1?表达式2:表达式3)
c=(a>b?a:b)
表达式1为真→执行表达式2并返回表达式2结果
表达式1为假→执行表达式3并返回表达式3结果
三目运算符返回的如果是变量,可以继续赋值
(a>b?a:b)=100;
三目运算符可以用来代替简单的if语句
例子如下:
//找出数组中最大的元素
int array[5] = {
300,350,200,400,250 };
int max = 0;
for (int i = 0; i < 5; i++)
{
if (array[i] > max)
{
max = array[i];
}
//三目运算符的做法
//max = (array[i] > max ? array[i] : max);
}
cout << max;
switch语句
switch(变量名)
{
case 变量值情况1:
执行语句1
执行语句2
执行语句3
break;
case 变量值情况2:
执行语句1
break;
default:
非以上case的默认情况下要执行的语句
break;
}
变量可以是常量(如int类型)也可以是char类型和bool类型,但不能是string类型
当变量为bool类型时,输入的非0数均会被转化为1
如果有部分case的处理方式相同时,将他们放在一起,使用如下方法
case 3:
case 2:
cout << "你选择的难度是中等" << endl;
break;
如果switch语句中不加break,将会执行下方所有的switch,因此switch的每个case下都要加break
swich语句的case中如果有多条语句不需要加{},switch将会执行该case下的所有语句然后break
当语句过多时将会报错,此时再加{}来包住语句块即可
break和continue不可以用于退出if条件判断
如果不加default,输出不符合case各个情况值时会跳过switch语句块
总结:
1.if可以判断一个区间,而switch只能判断整型或者字符型
2.switch要写break
2.switch执行效率高,结构清晰
循环结构
while循环
while(循环条件)
{
}
当条件为1(真)时,循环为死循环,会不断执行,需要有相关的退出循环的代码
break可以用于退出当前循环
变形:do-while循环
do
{
循环语句
}
while(循环条件);
注意:这里的whlie后面需要加分号;
总结:
do-while先执行一遍再判断循环条件
while先判断是否符合循环条件再执行循环条件
for循环结构
for(起始表达式;条件表达式;末尾循环体)
{
循环语句
}
首先是执行起始条件,如果符合条件表达式,则执行循环内容,然后执行末尾循环体
注意:起始表达式中定义的变量仅在该循环里存在
for(A;B;C)的ABC任意一项都可以没有,而在其他地方对循环作限制,如下:
int i = 1;
for (;;) {
//对for进行拆分,仍可以执行
if (i > 10)
break;
cout << i<<endl;
i++;
}
注意:for循环只会执行第一个语句,如不包含{},后续语句将在循环外依次执行
嵌套循环
嵌套循环不使用同一个循环起始表达式生成的变量i,当使用同一个变量名 “i”时,会按就近原则取值
但一般不命名为相同的变量名
跳转语句
break语句
1.switch中用于终止case并跳出switch
2.出现在循环语句中,用于跳出当前循环
3.出现在嵌套循环中用于跳出最近的内层循环语句
continue语句
类似break,但不同,循环中使用continue,执行到本行就不再执行,而执行下一次循环
goto语句
goto FLAG;//开始跳转
FLAG: //跳转点位置
注意跳转点位置加:冒号
不太推荐多次使用,容易混淆