C++课程4:走不完的循环

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;    //输出结果
}

这就是阶乘用循环的计算方法。

回去多多练习,下课。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值