个人主页:PingdiGuo_guo
收录专栏:C++干货专栏
大家好,今天我们来学习一下循环!
文章目录
1.什么是循环?
2.重复的语句如何改为循环?
3.循环如何使用:do-while, for, while
1.while循环
1.语法形式
2.执行流程
3.代码示例
4.练习
2.do-while循环
1.语法形式
2.执行流程:
3.代码示例
4.练习
3.for循环
1.语法形式
2.执行流程
3.代码示例
4.练习
4.多重循环
5.三种循环对比
附:循环流程图
6.跳出循环
1.continue语句
1.语法形式
2.练习
2.break语句
1.语法形式
2.练习
7.循环的用处
8.总结
循环是一种在编程中常用的结构,它允许我们重复执行一组语句。通过使用循环,我们可以避免重复输入相同的代码,提高代码的可读性和可维护性。在C++中,我们有几种类型的循环结构,包括do-while循环、for循环和while循环。
在编写代码时,当有题目要重复输出3遍“Hello, world!”时,大家是不是很烦,如果再把题目增加到输出10、20、 30甚至是10000遍呢?大家是不是要疯了?然而,通过循环,我们只需要编写一次重复的代码,然后使用循环结构来控制重复执行的次数或条件。
下面是一个示例,将多条重复的语句改写为循环:
#include
int main() {
// 多条重复的语句
std::cout << "Hello, world!" << std::endl;
std::cout << "Hello, world!" << std::endl;
std::cout << "Hello, world!" << std::endl;
// 使用循环来简化
for (int i = 0; i < 3; i++) {
std::cout << "Hello, world!" << std::endl;
}
return 0;
}
具体步骤:
1. 在上述示例中,我们有三条重复的语句需要执行,即输出"Hello, world!"。
2. 为了简化这些重复的语句,我们可以使用for循环来代替。首先,我们初始化一个循环变量i,并将其赋值为0(i = 0)。
3. 然后,我们设置循环条件(i < 3),只有在循环条件为真时循环才会继续执行。
4. 在每次循环迭代时,会执行循环体中的语句,即输出"Hello, world!"。
5. 循环迭代部分(i++)会更新循环变量i的值,使其逐渐增加。
在C++中,我们有三种常用的循环结构:do-while循环、for循环和while循环。
while循环在每次循环之前检查循环条件,只有当条件为真时才执行循环体。
while (条件) {
// 循环体
}
1. 检查循环条件是否为真,如果为假,则跳过循环体,继续执行循环后面的代码。
2. 如果条件为真,则执行循环体中的代码。
3. 再次检查循环条件,如果为真,继续执行循环体,直到条件为假才停止循环。
int i = 0;
while (i < 5) {
cout << i << " ";
i++;
}
输出结果:
0 1 2 3 4
使用while循环计算1到10的和。
分析:
我们可以使用一个计数器sum来累加,然后让i从1-10遍历即可。
int sum = 0;
int i = 1;
while (i <= 10) {
sum += i;
i++;
}
cout << "1到10的和为:" << sum << endl;
do-while循环先执行一次循环体,然后再检查循环条件。即使条件不满足,至少会执行一次循环体。
do {
// 循环体
} while (条件);
1. 执行循环体中的代码。
2. 检查循环条件,如果为真,继续执行循环体。
3. 重复步骤1和步骤2,直到条件为假才停止循环。
int i = 0;
do {
cout << i << " ";
i++;
} while (i < 5);
输出结果:
0 1 2 3 4
使用do-while循环输出1到10的奇数:
方法一思路:
1.循环从一到十
2.判断i(循环变量)是否是奇数。
3.如果是,则输出i
提示:
判断奇偶数的方法:
1.偶数:
if(i%2==0)//是偶数
{
cout<
2.奇数
if(i%2==1)//奇数
{
cout<
方法一代码:
int i=1;
do
{
if(i%2==1)
{
cout<
方法二思路:
要求我们输出10以内的奇数,我们知道,技术是从1开始,每两个增加,我们可以让i每次递增2即可。
方法二代码:
int i = 1;
do {
cout << i << " ";
i += 2;
} while (i <= 10);
for循环在循环开始前初始化一个循环变量,然后检查循环条件,在每次循环迭代后更新循环变量。
for (初始化; 循环条件; 循环迭代) {
// 循环体
}
1. 执行初始化部分。
2. 检查循环条件,如果为真,则执行循环体中的代码。
3. 执行循环迭代部分,更新循环变量。
4. 再次检查循环条件,如果为真,则继续执行循环体和循环迭代,直到条件为假才停止循环。
for (int i = 0; i < 5; i++) {
cout << i << " ";
}
输出结果:
0 1 2 3 4
1.使用for循环打印九九乘法表。
这里,我们需要了解多重循环的概念:
多重循环是指嵌套多个循环的情况,包括双重循环、三重循环、甚至更多层的嵌套循环。多重循环的目的是实现多层次的重复执行某种操作,可以用来处理多维数组、矩阵等复杂的数据结构,或者解决一些需要多个变量同时控制的问题。
多重循环的语法形式如下:
for (初始化表达式1; 循环条件1; 更新表达式1) {
for (初始化表达式2; 循环条件2; 更新表达式2) {
// 内层循环体代码
for (初始化表达式3; 循环条件3; 更新表达式3) {
// 更内层循环体代码
// ...
}
}
// 外层循环体代码
// ...
}
执行流程与双重循环类似,只不过多重循环会依次执行每一个嵌套的循环。每个循环中的初始化表达式、循环条件和更新表达式都会被执行和判断,只有当所有的循环条件都为真时,内层循环才会执行完毕后再执行外层循环。
使用多重循环时需要注意以下几点:
- 在设计嵌套循环时要确保循环的次序和逻辑是正确的,以避免死循环或跳过某些重要的迭代。
- 循环变量的命名应该具有描述性,以便于理解和维护。
- 在嵌套循环中使用break语句可以在满足某些条件时提前跳出内层循环。
- 嵌套循环的嵌套层数不宜过多,否则会导致代码的可读性变差和执行效率下降。
多重循环的用途广泛,可以用来处理复杂的问题,但在使用时要谨慎考虑,确保循环逻辑正确且不会导致性能问题。
接下来,我们可以写出九九乘法表了:
逻辑:先打印第一行的乘法表,然后换行打印第二行的乘法表,以此类推,直到打印第九行的乘法表。每行中的数字不大于当前行数,因此内层循环的循环条件是j<=i。
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
cout << j << "*" << i << "=" << i * j << " ";
}
cout << endl;
}
2.百钱买百鸡
题目:某人有100元钱,要买100只鸡,公鸡5元钱一只,母鸡3元钱一只,小鸡一元钱3只,问可买到的公鸡,母鸡,小鸡各为多少只,请把所有的可能性打印出来。
方法一思路:
1. 题目要求用100元买100只鸡,其中公鸡价格为5元,母鸡价格为3元,小鸡价格为1/3元。
2. 可以使用三层循环遍历所有可能的买鸡方案,找出满足条件的解。
方法一代码:
#include
using namespace std;
int main() {
for (int x = 0; x <= 20; x++) {
for (int y = 0; y <= 33; y++) {
for(int z=0;z<=300;z++){
if (5 * x + 3 * y + z / 3 == 100 && z % 3 == 0&& z + x +y == 100) {
cout << "公鸡数量:" << x << ' ';
cout << "母鸡数量:" << y << ' ';
cout << "小鸡数量:" << z << ' ';
}
}
}
}
return 0;
}
方法二思路:
1. 根据题目要求,鸡的数量之和为100,价格之和为100元,将该问题转化为一个数学问题。
2. 对公鸡数量进行遍历,确定公鸡的数量后,可根据母鸡和小鸡的数量计算出价格是否满足条件。
3. 在循环过程中,可以通过一次性计算出当前公鸡数量所能购买的母鸡和小鸡数量,避免内层循环。
在这里,我们只需要用两层循环即可解决问题。
方法二代码:
#include
using namespace std;
int main()
{
int x, y, z;
for (x = 0; x <= 100; x++) {
for (y = 0; y <= 100; y++) {
z = 100 - x - y;
if (z % 3 == 0 && 5 * x + 3 * y + z / 3 == 100) {
cout << "公鸡:" << x << "只,母鸡:" << y << "只,小鸡:" << z << "只" << endl;
}
}
}
return 0;
}
while循环:
do while循环:
for循环:
上面我们用文字讲了一下循环流程,下面我们来用图片再来明示一下。
当然,如果有continue或break语句(下面我们要讲的),那循环会在一定条件下跳出或直接不执行。
如果要跳出循环,我们可以使用continue和break语句来跳出循环。
continue语句可以跳出本次循环,但不能停止循环运行。
for(i=1;i<=n;i++)
{
if(i==2)
{
continue;
}
}
上述代码会在i=2是跳出循环,继续往后执行。
当用户输入一个数字n时,编写一个程序,使用`continue`语句计算从1到n之间所有奇数的平方和。
示例输入:
6
示例输出:
孤单奇数平方和: 35
分析具体步骤:
1.首先,从用户输入中获取一个整数n。
2.定义一个变量sum,用于存储奇数的平方和,初始值为0。
3.使用for循环,从1开始,循环到n。
4.在循环中,使用if语句判断当前的循环变量i是否为偶数。
5.如果i是偶数,则使用continue语句跳过本轮循环,直接进入下一轮循环。
6.如果i是奇数,则将i的平方加到sum中。
7.循环结束后,输出sum的值,即孤单奇数的平方和。
8.程序结束。
代码如下:
#include
using namespace std;
int main() {
int n;
cin >> n;
int sum = 0;
for (int i = 1; i <= n; i++) {
if (i % 2 == 0) {
continue; // 跳过偶数,继续下一轮循环
}
sum += i * i;
}
cout << "孤单奇数平方和: " << sum << endl;
return 0;
}
运行该程序时,用户输入一个数字n,程序将计算从1到n之间所有奇数的平方和,使用`continue`语句跳过偶数,最后输出结果。
break语句会结束整个循环执行。
for(i=1;i<=n;i++)
{
if(i==2)
{
break;
}
}
上述代码会在i=2时停止循环执行。
当用户输入一个整数n时,找出从1开始的连续整数序列的和,直到和大于等于n,然后输出连续整数序列的个数。
分析具体步骤:
1. 提示用户输入一个整数n。
2. 定义变量sum并初始化为0,用于存储当前连续整数序列的和。
3. 定义变量count并初始化为0,用于计算连续整数序列的个数。
4. 使用while循环,条件为sum小于n。
5. 在循环中,将count加1,表示找到了一个新的连续整数序列。
6. 将当前的count加到sum中。
7. 如果sum大于等于n,则使用break语句跳出循环。
8. 输出count的值,即连续整数序列的个数。
下面具体代码:
#include
using namespace std;
int main() {
int n;
cin >> n;
int sum = 0;
int count = 0;
while (sum < n) {
count++;
sum += count;
if (sum >= n) {
break;
}
}
cout << "连续整数序列的个数为: " << count << endl;
return 0;
}
通过使用break语句来跳出循环,我们在找到满足条件的连续整数序列后,不再继续执行循环,提高了程序的效率。
循环结构在编程中有着广泛的应用。它们可以用来遍历数组或容器中的元素,处理大量的数据,或者根据特定的条件重复执行某些操作。
循环还可以用于处理用户输入、文件操作和网络通信等情况。通过循环,我们可以轻松地处理这些任务,减少代码的重复性,提高代码的效率和可读性。
循环结构是C++编程中不可或缺的一部分。它们能够简化重复的代码,提高代码的可读性和可维护性。通过使用不同类型的循环结构,如do-while、for、while,我们可以根据不同的需求选择合适的循环方式。
在编程过程中,我们要注意循环条件的设置,避免出现无限循环的情况。同时,合理使用循环可以帮助我们处理大量的数据和重复的任务,提高程序的效率和性能。
无论是初学者还是有经验的开发者,掌握循环结构都是非常重要的。通过不断练习和实践,我们能够更加熟练地应用循环,提高自己的编程能力。
本篇博客到这里就结束了,感谢大家的支持与观看,如果有好的建议欢迎留言,谢谢大家啦!