hello everyone,I am Szelt.
今天我们来讲C++中的循环。
老样子,还是先复习一下,上节课地址:C++课程3:只有因果的判断_szelt的博客-CSDN博客
上节课最后我布置了一道题,做出来了吗?没有也没关系,我讲了之后理解就行,下面是代码:
#include<iostream>
using namespace std;
int main()
{
double tiwen; //建一个变量来保存体温
cin >> tiwen;
if (tiwen < 35.0 || tiwen > 37.0) //如果体温小于35℃或者大于37℃
{
cout << "NO"; //输出NO
}
else //否则
{
cout << "YES"; //输出YES
}
return 0; //终止程序
}
好了,这节课讲一个走不完的东西——循环。
什么是循环呢?循环就是在符合条件并且条件合法的情况下执行代码的函数体,如果条件不符合就会跳出循环。
循环分为两种,常用的是for循环,但是这节课我们要讲的是while循环(不要去管中文意思)。
while循环模板如下:
while (//执行代码条件)
{
//代码
}
比如说我做一个数字统计,统计方法是从n到m,i跟n和m的距离,那具体思路就是:我先输入i、n、m,再做两个循环,第一个循环让一个变量等于i(因为如果直接拿i去用第二个循环就没法还原了),让他不停-1,再拿一个变量用来统计-1了几次就知道距离了;第二个循环也一样,只不过要不停+1。下面是程序模板:
#include<iostream>
using namespace std;
int main()
{
int n,m,i,cnt = 0; //cnt用来计数,所以要归0
cin >> i >> m >> n; //输入
int j = i; //建一个等于i的变量来在循环内使用
while (j > n) //只要j大于n就执行
{
cnt++; //计数+1,也可以写成cnt = cnt + 1;或者cnt += 1;,这里要注意的是cnt++只能表示+1
j--; //数字-1
}
cout << cnt << endl; //输出距离
cnt = 0; //归0以便第二次循环使用
while (j < m)
{
cnt++;
j++l
}
cout << cnt << endl;
}
这就是循环的一个很简单的程序,循环还有一些语句和符号可以使用(不代表只能在循环里使用):
break; 直接跳出循环
continue; 继续循环
+,-,*,/,% 加,减,乘,除,取余数
就先讲这么多,其余的后面再说。
运用循环,我们可以做一些常用程序:
阶乘(234241):
输入一个数,计算它的阶乘。
#解析:阶乘就是!,比如3的阶乘就是3! = 3 * 2 * 1 = 6,5的阶乘就是5! = 5 * 4 * 3 * 2 * 1 = 120。
现在我们来分析一下题目,如果要做阶乘,我们需要一个变量保存结果,一个变量保存输入的数字,一个变量来保存每次的乘数。
代码如下:
#include<iostream>
using namespace std;
int main()
{
int n,i = 1; //i当乘数,所以从1开始,不然任何数乘0都是0
cin >> n;
long long int ans = 1; //建一个超长度整数类型变量ans来保存结果,其中int类型能保存10位,而long long可以保存19位
while (i <= n) //乘到了n再结束
{
ans = ans * i; //计算阶乘
}
cout << ans; //输出结果
}
这就是阶乘用循环的计算方法。
回去多多练习,下课。