C/C++支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构
顺序结构:程序按顺序执行,不发生跳转
选择结构:依据条件是否满足,有选择的执行相应功能
循环结构:依据条件是否满足,循环多次执行某段代码
接下来我们依次讲解这三种结构
选择结构
if语句
if语句的三种形式:
单行格式if语句: if(条件){ 条件满足执行的语句 }
多行格式if语句: if(条件){ 条件满足执行的语句 }else{ 条件不满足执行的语句 }
多条件的if语句:if(条件1){ 条件1满足执行的语句 }else if(条件2){条件2满足执行的语句}else{ 都不
满足执行的语句}
if后面的小括号中,放的是表达式,表达式会存在结果,ture或false,用来判断是否满足条件
如果表达式的结果是ture则进入if语句的代码块中,进行运行代码
如果表达式的结构是false,由else if则进入该条件语句进行进一步判断,否则则进入else语句的代
码块进行执行
单行格式if语句
bool flag = ture;
if(flag)
{
printf("if\r\n");
}
多行格式if语句
bool flag = ture;
if(flag)
{
printf("if\r\n");
}
else
{
printf("else\r\n");
}
多条件的if语句
int flag = 2;
if(flag == 1)
{
printf("if 1\r\n");
}
else if (flag == 2)
{
printf("if 2\r\n");
}
else if (flag == 3)
{
printf("if 3\r\n");
}
else
{
printf("else\r\n");
}
switch语句
switch 语句的表达式是一个整数,根据整数执行相应的分支,常用于执行多条件分支语句
int nFalg = 2
switch(nFalg) 此时将会执行case2分支语句
{
case 1:
{
printf("case 1\r\n");
break;
}
case 2:
{
printf("case 2\r\n");
break;
}
case 3:
{
printf("case 3\r\n");
break;
}
case 4:
{
printf("case 4\r\n");
break;
}
default:
{
printf("default\r\n");
break;
}
}
break 跳出代码块
default 缺省分支,其他分支
注意1:switch语句中表达式类型只能是整型或者字符型
注意2:case里如果没有break,那么程序会一直向下执行
总结:与if语句比,对于多条件判断时,switch的结构清晰,执行效率高,缺点是switch不可以
判断区间
循环结构
while循环
while的循环也是根据表达式的结果进行判断的,如果该表达式的结果为真,就执行循环语句
int nIndex = 0;
while(nIndex <= 100)
{
if(nIndex == 50)
{
break;
}
printf("Hello %d\r\n",nIndex);
nIndex++;
}
运行到nInedx == 50时 程序结束
int nIndex = 0;
while(nIndex <= 100)
{
if(nIndex == 50)
{
continue; 跳出当次循环
}
printf("Hello %d\r\n",nIndex);
nIndex++;
}
注意:在执行循环语句时候,程序必须提供跳出循环的出口,否则出现死循环
do while循环
该循环语句的语法为:do{ 循环语句 } while(循环条件)
do while循环会先执行一次循环语句,再进行判断循环条件,如果条件为ture,则执行循环语句
int nFalg = 0;
do
{
nFalg++;
printf("%d\r\n",nFalg);
}while (nFalg > 0);
无论条件是否成立,先进入循环运行一次
for循环
语法: for(起始表达式;条件表达式;末尾循环体) { 循环语句; },注意:隔开
如果满足循环条件,执行循环语句
for (size_t i = 0; i < 100; i++)
{
printf("%d\r\n",i);
}
相当于
int i = 0;
while (i < 100 )
{
i++;
}
嵌套循环
嵌套循环用于循环体中再嵌套一层循环,解决一些实际问题
for (size_t i = 0; i < 100; i++)
{
for (size_ k = 0; k < 100; k++)
{
printf("%d-%d\r\n",i,l);
}
}
跳转语句
break语句
break语句用于跳出选择结构或者循环结构
break使用的时机:
出现在switch条件语句中,作用是终止case并跳出switch
出现在循环语句中,作用是跳出当前的循环语句
出现在嵌套循环中,跳出最近的内层循环语句
continue语句
continue语言在循环语句中,跳过本次循环中余下尚未执行的语句,继续执行下一次循环,此时并
没有将整个循环终止
goto语句
语法:goto 标记
goto语句用于无条件跳转语句,如果标记的名称存在,执行到goto语句时,会跳转到标记的位置
如以下一个例子
int main()
{
printf("1\n");
goto FLAG; 程序运行此处,直接跳转到FLAG运行程序
printf("2\n");
printf("3\n");
printf("4\n");
FLAG: 程序通过goto跳转在此处开始运行程序
printf("5\n");
return 0;
}
作业
作业:
01.循环打印0 - 100(分别使用while/dowhile/for/goto实现)
while
do while
for
goto
02输入三个数,打印最小的那个数
03输入小写字母,转换成大写字母输出
04.输入一个字符,判断字符是大写还是小写
05.输入一个数,判断这个数是否为偶数
06.使用if语句与switch语句分别实现一个具有加减乘除功能的计算器
07.计算0 - 100的加法(0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 ...)
08.打印乘法口诀
例如:
1 * 1 = 1
2 * 1 = 2 2* 2 = 4
09.上网查询如何生成随机数,实现一个生成10以内随机数,并且猜数字的游戏
10.打印一个菱形
*
***
*****
*******
*****
***
*
11.使用*打印一个三角形
*
***
*****
*******
*********