一文详解C++的程序流程控制
程序流程控制是指程序中用来控制代码执行顺序和逻辑的语句,包括条件语句、循环语句以及跳转语句。本文将详细讲解C++中的程序流程控制语句及其使用方法。
条件语句
条件语句用于判断特定条件是否满足,并根据条件的真假执行不同的代码块。
if语句
if语句是最基本的条件语句。它的语法格式如下:
if (条件表达式)
{
//条件表达式为真时执行的代码块
}
示例1:判断一个整数是否为正数
#include <iostream>
using namespace std;
int main()
{
int n;
cout << "请输入一个整数:" << endl;
cin >> n;
if (n > 0)
{
cout << "这是一个正数" << endl;
}
return 0;
}
if-else语句
if-else语句可以在条件为真时执行一个代码块,在条件为假时执行另一个代码块。它的语法格式如下:
if (条件表达式)
{
//条件表达式为真时执行的代码块
}
else
{
//条件表达式为假时执行的代码块
}
示例2:判断一个整数是否为偶数
#include <iostream>
using namespace std;
int main()
{
int n;
cout << "请输入一个整数:" << endl;
cin >> n;
if (n % 2 == 0)
{
cout << "这是一个偶数" << endl;
}
else
{
cout << "这是一个奇数" << endl;
}
return 0;
}
if-else if-else语句
if-else if-else语句可以判断多个条件,每个条件都有一个相应的代码块执行。它的语法格式如下:
if (条件表达式1)
{
//条件表达式1为真时执行的代码块
}
else if (条件表达式2)
{
//条件表达式2为真时执行的代码块
}
else
{
//条件表达式1和条件表达式2均为假时执行的代码块
}
示例3:判断一个分数对应的等级
#include <iostream>
using namespace std;
int main()
{
int score;
cout << "请输入一个分数:" << endl;
cin >> score;
if (score >= 90)
{
cout << "优秀" << endl;
}
else if (score >= 80)
{
cout << "良好" << endl;
}
else if (score >= 60)
{
cout << "及格" << endl;
}
else
{
cout << "不及格" << endl;
}
return 0;
}
循环语句
循环语句用于重复执行一段代码,可以根据条件控制循环次数和循环结束条件。
while语句
while语句是最基本的循环语句。它的语法格式如下:
while (条件表达式)
{
//满足条件表达式时重复执行的代码块
}
示例4:计算1~100的自然数之和
#include <iostream>
using namespace std;
int main()
{
int i = 1, sum = 0;
while (i <= 100)
{
sum += i;
i++;
}
cout << "1~100的自然数之和为:" << sum << endl;
return 0;
}
do-while语句
do-while语句先执行一次代码块,然后根据条件判断是否继续执行。它的语法格式如下:
do
{
//重复执行的代码块
}
while (条件表达式);
示例5:循环输入数字,直到输入-1结束,并输出所有数字的平均值
#include <iostream>
using namespace std;
int main()
{
int n, sum = 0, count = 0;
do
{
cout << "请输入一个整数(输入-1结束):" << endl;
cin >> n;
if (n != -1)
{
sum += n;
count++;
}
}
while (n != -1);
if (count > 0)
{
cout << "平均值为:" << (double)sum / count << endl;
}
return 0;
}
for语句
for语句可以根据条件控制循环次数。它的语法格式如下:
for (初始化表达式; 循环条件表达式; 循环后操作表达式)
{
//重复执行的代码块
}
示例6:计算1~10的阶乘
#include <iostream>
using namespace std;
int main()
{
int n = 1, fac = 1;
for (int i = 1; i <= 10; i++)
{
fac *= i;
}
cout << "10的阶乘为:" << fac << endl;
return 0;
}
跳转语句
跳转语句用于跳转到程序的指定位置。C++中有三种跳转语句:break、continue和goto。
break语句
break语句可以跳出循环语句,执行其后的语句。它的使用方法如下:
while (条件表达式)
{
//循环执行的代码块
if (跳出条件表达式)
{
break;
}
}
//跳出循环语句后执行的代码
示例7:计算1~100之间的素数个数
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int count = 0;
for (int i = 2; i <= 100; i++)
{
bool isPrime = true;
for (int j = 2; j <= sqrt(i); j++)
{
if (i % j == 0)
{
isPrime = false;
break;
}
}
if (isPrime)
{
count++;
}
}
cout << "1~100之间的素数个数为:" << count << endl;
return 0;
}
continue语句
continue语句可以跳过循环中指定的代码块,直接执行下一次循环。它的使用方法如下:
while (条件表达式)
{
if (跳过条件表达式)
{
continue;
}
//执行的代码块
}
示例8:输出100内的奇数
#include <iostream>
using namespace std;
int main()
{
for (int i = 1; i <= 100; i++)
{
if (i % 2 == 0)
{
continue;
}
cout << i << " ";
}
return 0;
}
goto语句
goto语句可以跳转到程序中指定的位置。使用goto语句需要注意,过多使用会使程序的逻辑难以理解。
示例9:使用goto语句实现一个计算器
#include <iostream>
using namespace std;
int main()
{
char op;
int num1, num2;
cout << "请输入一个操作符(+、-、*、/):" << endl;
cin >> op;
cout << "请输入两个整数:" << endl;
cin >> num1 >> num2;
switch (op)
{
case '+':
cout << num1 + num2 << endl;
break;
case '-':
cout << num1 - num2 << endl;
break;
case '*':
cout << num1 * num2 << endl;
break;
case '/':
if (num2 == 0)
{
cout << "除数不能为0" << endl;
goto END;
}
cout << num1 / num2 << endl;
break;
default:
cout << "操作符不正确" << endl;
break;
}
END:
return 0;
}
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一文详解C++的程序流程控制 - Python技术站