🐼Pixiv ID:44342920

快乐的循环结构


for循环的使用

首先,我们来讲一个故事吧 (偷瞟一眼社长在不在)

  • 话说有一天,一个叫LYT的男人(某快乐社长)他喜欢玩亚索 (托儿所),于是他想计算E100次小兵会花多少蓝。但是呢,他身边没有电脑,于是他网瘾大发 (社长不敢去网吧),这时候你看见社长陷入绝境,于是你 准(jian)备(si)帮(bu)助(jiu) 他。

①现在你知道亚索第一次E会花费1点蓝量,每E一次会增加1点蓝耗。但是你觉得计算从1加到100实在是太麻烦了。怎么办? ~~要不我们放弃他? ~~

于是你来听了这一堂IT社的课程。(并觉得血赚不亏。)

(IT社毕竟是学习如何用最简单的步骤得到想要的东西的地方。)

于是,这堂课的内容开始了。


这里我要向大家隆重介绍for语句。

#include<iostream>
using namespace std;
int main()
{
	int s = 0;
	for(int i = 1; i <= 100; i++)
	{
		s+=i;
	}
	cout<<s;
	return 0;
}

这个程序便是帮助社长的操作,在这个程序中,

for()中包含了三个语句,

首先第一个语句int i=1,这个的意思是定义i是多少,当然这里的int可以省略,前提是你引用的变量在你的程序中已经定义过了。

第二个语句,i<=100这个的意思是给定i的范围,也就是说i只能在这个范围里进行计算。当然如果不写这句的话,程序将会无限制的运行下去,这样也就会导致程序崩盘。(后面我会给大家介绍几种在程序内终止循环的方法。)

第三个语句,i++这个的意思是让i进行自加运算**(也就是说i++等价于i=i+1)**,这句如果不写的话,i的值将不会变化,当然,你可以把这句写到循环里面去。

我们当然可以来对这三句进行一个定义式:
for(int i = n ; i <= m ; i = i +x)
翻译成数学语言就是:
in开始,每次增加x,直到i > m


接下来我相信大家会有很多问题。

比如:

①为什么要让i=1,这其实只是一个习惯,你也可以让i=0,这也是可以的,但是在后面的程序里,有部分程序是要让i=0的,但是这要等到数组之后才会出现,也就不在这里讲解。

②这个for()语句一定要加下面的括号吗?答案是否定的,如果你的语句只有一条,那么完全可以不加那个括号,但是语句一旦大于一条,那么括号必须加,不然程序中,它只会认你for()语句下面的一条语句,这样就会导致程序发生错误。

③如何在循环内跳出。

第一种方法,在你的循环里面加一个break,这个的意思就是跳出你当前的程序,在上面的程序中,我就使用了一个判定语句,当i的值是5的时候,程序结束,这样即便是i不加到100,程序也会停止。但是这个语句也有一个缺点,就是不能直接让程序停止。

#include<iostream>
using namespace std;
int main()
{
	int s = 0;
	for(int i = 1; i <= 100; i++)
	{
		s+=i;
		if(i == 5)
		break;
	}
	cout<<s;
	return 0;
}

这时候一定有人想问,你的程序不是停下来了吗?因为我这个程序很简单,只有一重循环,当如果有两重循环了,这个程序就不会停下来,而是继续进入下一个循环。

这里我就要介绍另一个更加暴力的方法了,这个方法可以直接让程序完全停止下来。

#include<iostream>
using namespace std;
int main()
{
	int s = 0;
	for(int i = 1; i <= 100; i++)
	{
		s+=i;
		if(i == 5)
		return 0;
	}
	cout<<s;
	return 0;
}

这就是直接加一个return 0;这样当循环达到你想要的结果的时候你就直接可以结束这个程序,输出你想要的值。

在这里,跑程序时我们也会发现一个问题:没有输出

其实这个程序在retrun 0;语句过后就已经结束了,后面的语句将不会被执行的。

PS:return 0;在程序中就可以看作是结束整个程序的意思。

④这个循环里面是什么语句都可以加吗?理论上来说是这样的,大部分语句都可以写到循环里面去,当然在循环里面写循环也是完全可以的。

最后,谢谢大家的学习。

如果有不懂的可以加本人的QQ:1259249107,所有问题本人会在周末尽全力解答,谢谢大家。

以上内容为IT社ZWT大佬友情提供
大佬QQ:1259249107


有问题直接给我发邮件xiemaths@gmail.com或者xyh798061533@163.com
QQ:2385708107
ZWT大佬QQ:1259249107
LYT大佬QQ:1622956497
(周末统一回复,原谅高二狗的苦)