【C++保姆级入门】循环详解,带你告别死循环
哈喽大家好,我是iecne,本期为大家带来的是CPP/C++保姆级入门教程的第三期—— 循环,包教包会,快来看看吧!
此教程适合新手小白,因为语言会十分的通俗易懂,不会有很多的专业词汇出现,可以更好的掌握并且吸收,后续加上持之以恒的练习题目将会基本巩固
系列文章目录
C++保姆级入门教程(1) 变量 输出 输入
C++保姆级入门教程(2) 算术运算和赋值
C++保姆级入门教程(3) if语句
C++保姆级入门教程(4) 循环
目录
这次,我们介绍两种循环
1.while
2.for
一、while语句是什么?
当满足条件时进入循环,进入循环后,当条件不满足时,跳出循环。while语句的一般表达式为:while(表达式){循环体}
二、while语句的用法
1.while的格式
while(循环条件)
{
循环体;
}
2.while的用法
看下以下代码
#include <iostream>
using namespace std;
int main()
{
int i = 0;
while (i < 10)
{
i++;
if (i <= 10)
cout << "作者吃了第" << i << "口冰激淋" << endl;
if (i == 10)
cout << "作者花了" << i << "口吃完了冰激淋";
}
return 0;
}
输出的结果是
作者吃了第1口冰激淋
作者吃了第2口冰激淋
作者吃了第3口冰激淋
作者吃了第4口冰激淋
作者吃了第5口冰激淋
作者吃了第6口冰激淋
作者吃了第7口冰激淋
作者吃了第8口冰激淋
作者吃了第9口冰激淋
作者吃了第10口冰激淋
作者花了10口吃完了冰激淋
代码解释:i=0开始循环
第一次加一,使i=1
如果(i小于10)输出……
第二次…………
直到第十次
第一个if结束后,来到第二个if,输出……
第十次,i=10,不小于10了,与while(i < 10)不等,退出结束
再看一段代码,这是NOIP 2016 普及组初赛试题中的一题
#include <iostream>
using namespace std;
int main()
{
int max, min, sum, count = 0;
int tmp;
cin >> tmp;
if (tmp == 0)
return 0;
max = min = sum = tmp;
count++;
while (tmp != 0)
{
cin >> tmp;
if (tmp != 0)
{
sum += tmp;
count++;
if (tmp > max)
max = tmp;
if (tmp < min)
min = tmp;
}
}
cout << max << "," << min << "," << sum / count << endl;
return 0;
}
我们直接提取关键部分
#include <iostream>
using namespace std;
int main()
{
int max, min, sum, count = 0;
int tmp;
//cin >> tmp;
tmp = 1;
if (tmp == 0) return 0;
max = min = sum = tmp;
count++;
while (tmp != 0)
{
cin >> tmp;
if (tmp != 0)
{
sum += tmp;
count++;
if (tmp > max) max = tmp;
if (tmp < min) min = tmp;
}
}
cout << max << "," << min << "," << sum / count << endl;
return 0;
}
输入: 1 2 3 4 5 6 0 7
输出:6 1 3
一共输入了7次
第6次输入的是0,while结束,马上输出
所以count为6+1(7),max是最大的6,min是最小的1,sum=21
注意:min不是0,因为在代码中有排除0的if
则输出
max 6
min 1
21/7 3
三.for是什么
循环语句由循环体及循环的判定条件两部分组成,其表达式为:for(单次表达式;条件表达式;末尾循环体){中间循环体;}
四.for语句的用法
1.for的结构
for(单次表达式;条件表达式;末尾循环体)
{
中间循环体;
}
2.for的用法
上一个冰激凌while的写法:
#include <iostream>
using namespace std;
int main()
{
int i = 0;
while (i < 10)
{
i++;
if (i <= 10)
cout << "作者吃了第" << i << "口冰激淋" << endl;
else
cout << "作者花了" << i << "口吃完了冰激淋";
}
return 0;
}
用for的写法:
#include <iostream>
using namespace std;
int main()
{
int i;
for (i = 1; i <= 10; i++)
{
if (i <= 10)
cout << "作者吃了第" << i << "口冰激淋" << endl;
if (i == 10)
cout << "作者花了" << i << "口吃完了冰激淋";
}
return 0;
}
结果相同:
作者吃了第1口冰激淋
作者吃了第2口冰激淋
作者吃了第3口冰激淋
作者吃了第4口冰激淋
作者吃了第5口冰激淋
作者吃了第6口冰激淋
作者吃了第7口冰激淋
作者吃了第8口冰激淋
作者吃了第9口冰激淋
作者吃了第10口冰激淋
作者花了10口吃完了冰激淋
其中要注意的是:i<=10
因为for与while不同,for会执行完i==10的这段代码。而while不会,while若发现i==10,不<10,会马上退出
下面解释一下for的格式:
首先先定义赋值变量(如果不需要赋值就可以不输入)
分号
执行中间循环体的要求
分号
变量的变化(若不需要可以不输入)
3.for的不同表达方式
比如以下代码
for (int i = 1; i <= 5; i++) cout << i << " ";
还可以表示成这样:
int i = 1;
for (; i <= 5;)
{
cout << i << " ";
i++;
}
4.用for表示数组的输入输出
用这个程序可以实现数组的输入输出
输入一个变量n
输入n个数
依次输出这n个数
#include <iostream>
using namespace std;
int main()
{
int n, a;
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> a;
cout << a << " ";
}
return 0;
}
五.总结
包教包会,学会了就点赞关注收藏吧~
学不会呢,也请点赞关注收藏。蟹蟹
相关文章
- C/C++数据结构(三) —— 双向带头循环链表
- 队列的基本概念详解,循环队列、链式队列的C++详细实现
- 【C/C++开发】循环中使用递减计数与递增计数的效率区别
- JAVA编程思想中总结的与C++的区别
- [c++] Iterators
- 《c语言项目》学生成绩管理系统(devc++)
- 【C/C++】void指针知多少
- 关于C和C++
- C++011-C++循环+枚举
- [C++]VS2005(VC8) 使用 Boost
- C++中虚析构函数的作用
- C++ STL 中list是双向循环链表中循环可以实现什么功能?
- C++模拟键盘按下的代码
- VC++内存泄漏检测方法(5):使用强大的Windbg工具,重点是Symbols Path设置
- C++11的for循环,以及范围Range类的实现
- 嵌入式linux基础:c++(四)重载 指针 引用
- 【PAT乙级真题】1007 素数对猜想(分数 20)(C++)
- C++ | 函数参数默认值
- c++回调函数
- C++ 类中的3种访问权限和继承方式
- C++ | 智能指针面试题:使用weak_ptr解决循环引用无法析构的问题