程序流程结构 目录:
C/C++支持组基本的三种程序运行结构为:顺序结构、选择结构、循环结构
1.选择结构
1.1 if语句
(1)
单行格式if语句:if(条件){条件满足执行的语句;}
,注意if条件后面不要加分号!
多行格式if语句:if(条件){条件满足执行的语句;}else{条件满足执行的语句;}
多条件的if语句:if(条件1){条件1满足执行的语句;}else if(条件2){条件2满足执行的语句;} ... else{都不满足执行的语句; }
//单行if语句
if (score > 600)
{
cout << "分数大于600" << endl;
}
//多行if语句
if (score > 600)
{cout << "分数大于600" << endl;}
else
{cout << "分数不大于600" << endl;}
//多条件的if语句
if (score > 600)
{cout << "分数大于600" << endl;}
else if (score > 400)
{cout << "分数大于400,但不大于600" << endl;}
else
{cout << "分数不大于400" << endl;}
(2)
嵌套if语句:
if (score > 600)
{
cout << "分数大于600" << endl;
if (score > 650)
{cout << "分数大于650" << endl;}
else
{cout << "分数不大于650" << endl;}
}
else
{cout << "分数不大于600" << endl;}
1.2 三目运算符
语法:表达式1 ? 表达式2 : 表达式3
如果表达式1的值为真,执行表达式2,并返回表达式2的结果;
如果表达式1的值为假,执行表达式3,并返回表达式3的结果。
c = (a > b ? a : b); //c为a和b中大的那个
在C++中,三目运算符返回的是变量,可以继续赋值,如(a > b ? a : b) = 100;
就是让a和b之间大的那个变量为100。
1.3 switch语句
作用:执行多条件分支语句
语法:
switch(表达式)
{
case 结果1 : 执行语句; break;
case 结果2 : 执行语句; break;
...
default : 执行语句; break;
}
举例:
switch(score)
{
case 10: cout << "经典" << endl; break;
case 9: cout << "经典" << endl; break;
case 8: cout << "不错" << endl; break;
case 7: cout << "不错" << endl; break;
case 6: cout << "一般" << endl; break;
case 5: cout << "一般" << endl; break;
default: cout << "不太好" << endl; break;
}
break的作用是退出当前分支,不再往下执行了。若没有break的话,从满足条件的那个分支开始,后面的操作都会执行,比如score为6,那么会输出一般、一般、不太好。
2.循环结构
2.1 while循环
语法:while(循环条件){循环语句}
补充:
①生成随机数
rand()%100; //会生成一个0-99的随机数
int num = rand()%100 + 1; //num为1-100的一个随机数
但这样生成的是伪随机数,每次都是一样的。
②添加随机数种子,利用当前系统时间生成随机数,防止每次随机数都一样
#include <ctime> //添加头文件
srand((unsigned int)time(NULL));
int num = rand()%100 + 1; //num为1-100的一个随机数
并且别忘了使用break关键字可以退出当前循环
2.2 do…while循环
语法:do{循环语句}while(循环条件);
这后面有个分号别忘啦!
与while的区别在于do…while会先执行一次循环语句,再判断循环条件
补充:
对于一个三位数,对该数字取模%于10,可获得个位数字;整除以10,再取模于10,可以获得十位数字;整除以100,取模于10,可以获得百位数或者该数字直接整除于100,获取百位数。
2.3 for循环
语法:for(起始表达式;条件表达式;末尾循环体){循环语句;}
其中for里面的三个表达式都可以省略不写,但分号得写,去表示它们的相对位置
举例:
for (i=0; i<10; i++)
{cout << i << endl;}
会输出数字0-9
以下为打印9×9乘法口诀表的代码:
int main()
{
for (int i = 1; i <= 9; i++)//行数
{
//cout << i << endl;
for (int j = 1;j <= i; j++)//列数
{
cout << j << "*" << i << "=" << j * i << " ";
}
cout << endl;
}
3.跳转结构
3.1 break语句
作用:用于跳出选择结构或者循环结构
break使用的时机:
- 出现在switch条件语句中,作用是终止case并跳出switch;
- 出现在循环语句中,作用是跳出当前的循环语句;
- 出现在嵌套循环中,跳出最近的内层循环语句。
3.2 continue语句
作用:在循环语句中,跳过本次循环中余下尚未执行的语句,继续执行下一次循环
3.3 goto语句
作用:可以无条件跳转语句
语法:goto 标记;
如果标记的名称存在,执行到goto语句时,就会跳转到标记的位置
举例:
goto A;
A:xxx