c/c++支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构。
顺序结构:程序按顺序执行,不发生跳转。
选择结构:依据条件是否满足,有选择的执行相应功能。
循环结构:依据条件是否满足,循环多次执行某段代码。
参考视频:https://www.bilibili.com/video/BV1et411b73Z?from=search&seid=4205594350351753444
已投币三连,非常好的视频教程,感谢up主的奉献。
(1)选择结构
1. 使用 if语句,语法为:
if (条件) {
/* 满足条件后,可执行括号中内容 */
// ...
}
if (条件1) {
/* 满足条件1后,执行本括号中程序 */
// ...
/* 执行完程序后,结束整个if结构 */
}
else if (条件2) {
/* 如果条件1不满足,而条件2满足,执行本括号中程序 */
// ...
/* 执行完程序后,结束整个if结构 */
}
else if (条件3) {
/* 如果条件1、条件2均不满足,而条件3满足,执行本括号中程序 */
// ...
/* 执行完程序后,结束整个if结构 */
}
...
...
...
if (条件1) {
/* 满足条件1后,执行本括号中程序 */
// ...
/* 执行完程序后,结束整个if结构 */
}
else if (条件2) {
/* 如果条件1不满足,而条件2满足,执行本括号中程序 */
// ...
/* 执行完程序后,结束整个if结构 */
}
else if (条件3) {
/* 如果条件1、条件2均不满足,而条件3满足,执行本括号中程序 */
// ...
/* 执行完程序后,结束整个if结构 */
}
...
...
...
else {
/* 如果条件1、条件2、条件3...均不满足,则执行本括号中程序 */
// ...
/* 执行完程序后,结束整个if结构 */
}
int main() {
int a = 0;
if (a < 0) {
cout << "a小于0" << endl;
}
else if (a > 0) {
cout << "a大于0" << endl;
}
else {
cout << "a等于0" << endl;
}
system("pause");
return 0;
}
---------------------------------------------------
a等于0
请按任意键继续. . .
if支持多重嵌套。
2. 三目运算符
三目运算符可实现简单的判断。语法:
表达式1 ? 表达式2 : 表达式3
// 如果表达式1为真,则执行表达式2,并返回表达式2的结果。
// 如果表达式1为假,则执行表达式3,并返回表达式3的结果。
int main() {
int a = 10;
a > 0 ? cout << "a大于0" << endl : cout << "a小于0" << endl;
system("pause");
return 0;
}
------------------------------------------------------------------
a大于0
请按任意键继续. . .
3. switch语句。执行多条件分支语句。语法:
switch (表达式) {
case 结果1: 执行代码段; break;
case 结果2: 执行代码段; break;
case 结果3: 执行代码段; break;
...
...
...
defaule: 执行代码段; break;
}
int usr=0;
cout << "请输入1、2、3其中一个数字" << endl;
cin >> usr;
switch (usr)
{
case 1:
cout << "输入了1" << endl; break;
case 2:
cout << "输入了2" << endl; break;
case 3:
cout << "输入了3" << endl; break;
default:
cout << "不在规定范围内输入" << endl; break;
}
--------------------------------------------------------------
请输入1、2、3其中一个数字
3
输入了3
请按任意键继续. . .
注意:别少写break,少写break代码会继续向下执行。直到再次遇到break,才会结束整个switch。
(2)循环结构
1. while循环语句。语法:
while (条件) {
/* 满足条件后,执行本括号中程序 */
// ...
/* 执行完程序后,接着判断条件。如满足,继续循环执行本括号程序;如不满足,结束while循环 */
}
2. do while循环语句。语法:
do {
// 先执行一次本括号程序
// ...
/* 执行完程序后,判断条件。如满足,继续循环执行本括号程序;如不满足,结束while循环 */
}while (条件)
3. for循环语句。满足循环条件,执行循环语句。语法:
for (表达式1; 表达式2; 表达式3)
{
循环语句
}
for (初始化语句; 循环条件; 自增或自减)
{
循环语句
}
int i, j;
for (i = 0; i < 5; i++)
{
for (j = 0; j < 10; j++)
{
cout << "j ";
}
cout << "i" << endl;
}
-------------------------------------------
j j j j j j j j j j i
j j j j j j j j j j i
j j j j j j j j j j i
j j j j j j j j j j i
j j j j j j j j j j i
请按任意键继续. . .
(3)跳转语句
break语句:用于跳出选择结构或循环结构。
(注意:break只会跳出距离它最近的for、while这些循环语句,跟if没有关系)
作用:
出现在switch语句中,作用是终止case并跳出switch。
出现在循环语句中,作用是跳出当前的循环语句。
出现在嵌套循环语句中,跳出最近的内层循环语句。
int usr=0;
cout << "请输入1、2、3其中一个数字" << endl;
cin >> usr;
switch (usr)
{
case 1:
cout << "输入了1" << endl; //break;
case 2:
cout << "输入了2" << endl; //break;
case 3:
cout << "输入了3" << endl; //break;
default:
cout << "不在规定范围内输入" << endl; //break;
}
---------------------------------------------------------------
请输入1、2、3其中一个数字
2
输入了2
输入了3
不在规定范围内输入
请按任意键继续. . .
int i, j;
for (i = 0; i < 5; i++)
{
for (j = 0; j < 10; j++)
{
if (j >= 5)
break;
cout << "j ";
}
cout << "i" << endl;
}
---------------------------------------------------------
j j j j j i
j j j j j i
j j j j j i
j j j j j i
j j j j j i
请按任意键继续. . .
int i, j;
for (i = 0; i < 5; i++)
{
for (j = 0; j < 10; j++)
{
cout << "j ";
}
cout << "i" << endl;
break;
}
------------------------------------------------------
j j j j j j j j j j i
请按任意键继续. . .
continue语句:循环语句中,跳过本次循环中余下尚未执行的语句,继续执行下一次循环。
int i, j;
for (i = 0; i < 5; i++)
{
for (j = 0; j < 10; j++)
{
if (j == 5 || j == 8)
{
continue;
}
cout << j;
}
cout << "i" << endl;
}
--------------------------------------------------------
01234679i
01234679i
01234679i
01234679i
01234679i
请按任意键继续. . .
goto语句:可以无条件跳转语句。
(注意:少用,goto不利于梳理代码逻辑)
cout << "执行代码段1" << endl;
goto CODE_1;
cout << "执行代码段2" << endl;
cout << "执行代码段3" << endl;
CODE_1:
cout << "执行代码段4" << endl;
---------------------------------------------------------
执行代码段1
执行代码段4
请按任意键继续. . .