顺序结构:按顺序执行,不发生跳转
选择结构:依据条件是否满足,有选择的执行相应功能
循环结构:依据条件是否满足,循环多次执行某段代码
1. 选择结构
1、if语句
作用:执行满足条件的语句
三种形式:
单行格式if语句:if (条件) { 条件满足执行的语句}
多行格式if语句:if(条件{ 条件满足执行的语句 }else{ 条件不满足执行的语句 }
多条件的if语句:if(条件1){ 条件1满足执行的语句 }else if(条件2){条件2满足执行的语句}... else{ 都不满足执行的语句 }
嵌套if语句:达到更精准的条件判断
2、三目运算符:表达式1 ? 表达式2 : 表达式3
解释:
如果表达式1的值为真,执行表达式2,并返回表达式2的结果;
如果表达式1的值为假,执行表达式3,并返回表达式3的结果;
int a = 10;
int b = 20;
int c = 0;
c = (a > b ? a : b);
在C++中三目运算符返回的是变量,可以继续赋值
(a > b ? a : b) = 100;
返回b的变量,所以b被赋值为100;
3、switch语句
执行多条件分支语句
switch(表达式)
{
case 结果1: 执行语句;break;
case 结果2: 执行语句;break;
...
default:执行语句;break;
}
switch如果不加break,程序会一直向下执行。
if和switch区别:
1、switch缺点:判断的时候只能是整型或者浮点型,不可以是一个区间
2、switch优点:结构清晰,执行效率高
2. 循环结构
1、while循环语句
作用:满足循环条件,执行循环语句
语法:while(循环条件){ 循环语句 }
循环条件的结果为真,执行循环语句
生成随机数:
rand()%n //生成0~(n-1)之间的随机数
rand()%n+1 //生成1~n之间的随机数
1、
#include <ctime> //添加time系统时间头文件
2、
srand((unsigned int)time(NULL)); //添加随机数种子,作用:利用当前系统时间生成随机数,防止每次随机数都一样
3、
int num = rand() % 100 + 1; //系统生成1~100的随机数
break;
可以利用该关键字来推出当前循环
2、do…while循环语句
语法:do{ 循环语句 } while{循环条件};
与while的区别在于do…while会先执行一次循环语句,再判断循环条件。
3、for循环语句
语法:for(起始表达式;条件表达式;末尾表达式) {循环语句;}
执行顺序:
0、起始表达式 (只执行一次)
循环:
1、条件表达式
2、循环表达式
2、末尾表达式
4、嵌套循环
3. 跳转语句
1、break语句
作用:用于跳出选择结构或者循环结构
使用的时机:
出现在switch条件语句中,作用是终止case并跳出switch
出现在循环语句中,作用是跳出当前循环语句
出现在嵌套循环中,跳出最近的内层循环语句
2、continue语句
作用:在循环语句中,跳过本次循环中余下尚未执行的语句,继续执行下一次循环。
3、goto语句
作用:无条件跳转代码
语法:goto 标记;
解释:如果标记的名称存在,执行到goto语句时,会跳转到标记的位置(用来跳出多层循环)
例:
cout<< "1、***" << endl;
goto FLAG:
cout<< "2、***" << endl;
cout<< "3、***" << endl;
FLAG:
cout<< "4、***" <<endl:
尽量不适用goto语句