概述
(1) for、while、do...while循环
简单来讲,循环就是多次执行同样的代码
例,如何输出重复内容多次:①代码复制多次;②写个函数调用多次;③写循环重复执行代码5次
1、for循环
for循环括号中有三部分,每部分用“;”分隔开。
第一部分是变量声明,一般在此处声明临时变量,通常为int i=0;i代表迭代器(iterator),实际上变量名与变量初值都无所谓。在for循环之前执行一次。
第二部分是条件,满足条件时,一直执行for循环中的代码。布尔值,执行每一次循环前会检验。
第三部分是下次for循环前会执行的代码。每次循环结束后执行的代码。
for循环下是循环体,即for循环中会重复执行代码(由条件决定是否多次执行,可能根本不执行)。
#include <iostream>
#include "Log.h"
int main()
{
for (int i = 0; i < 5; i++)
{
Log("Hello World!");
}
std::cin.get();
}
首先执行for循环这一行,创造变量i,再检查条件是否为真。条件为真,跳进循环体,执行循环体代码,执行到}时,执行for()中的第三部分,即i++,i由0变1,然后再检查条件i<5?条件为真再执行循环体代码。直到i=4的一次循环最后i++变成了5,不满足条件然后退出循环。执行for循环下方的代码std::cin.get();
变量声明放在for前,然后空着第一部分也可以。第三部分放在循环体的最后结果也一样。for循环非常灵活。
#include <iostream>
#include "Log.h"
int main()
{
int i = 0;
bool condition = true;
for ( ; i < 5; )
{
Log("Hello World!");
i++;
if(!(i < 5))
condition = false;
}
std::cin.get();
}
for循环的三个部分中甚至可以调用函数。第二部分如果时true循环就变成了死循环。
2、while循环
while循环类似for循环,没有第一部分的声明和结尾第三部分的代码,只有第二部分的条件。
声明需要在while循环之前,循环末尾执行第三部分代码(循环后、下次循环前执行的代码)。
#include <iostream>
#include "Log.h"
int main()
{
for (int i = 0; i < 5; i++ )
{
Log("Hello World!");
}
Log("-------分割线-------");
int i = 0;//为while循环声明变量,for循环内定义的i作用域只在for循环内
while (i < 5)
{
Log("Hello");
i++;
}
std::cin.get();
}
什么时候使用while循环?什么时候使用for循环?主要取决于是否需要新变量。从经验上来讲,如果已经有用来检验的布尔值,选择while循环,不用每次循环都改变条件,循环前不用去声明变量(已通过布尔条件值进行了声明)。而在遍历数组的时候,数组大小确定时,选择for循环,因为每次循环都会产生新的变量,这个变量在访问数组的时候有用,访问数组元素时需要偏移量或者索引。
3、do...while循环
do {循环体 }while(条件);不太常用
do...while循环与while循环的区别:do...while循环至少会被执行一次
do...while循环即使条件为假,也会运行一下里面的代码,而不是想while循环一样跳过,运行到最后while的条件,发现为假,循环结束
#include <iostream>
#include "Log.h"
int main()
{
for (int i = 0; i < 5; i++ )
{
Log("Hello World!");
}
Log("-------分割线-------");
int i = 0;//为while循环声明变量,for循环内定义的i作用域只在for循环内
while (i < 5)
{
Log("Hello");
i++;
}
Log("-------分割线-------");
do
{
Log("Hello");
} while (i < 5);
std::cin.get();
}
14
(2)控制流语句 continue、break、return
1、continue 只能用于循环内部;如果还能进行迭代的话,直接进入下一次迭代,否则就结束循环。
int main()
{
for (int i = 0; i < 5; i++ )
{
Log("Hello World!");
continue;//此处continue不会影响整体循环
}
std::cin.get();
#include <iostream>
#include "Log.h"
int main()
{
for (int i = 0; i < 5; i++ )
{
if (i % 2 == 0)
continue;//跳过偶数次迭代(i=0、2、4)
Log("Hello World!");
std::cout << i << std::endl;
}
std::cin.get();
}
输出结果:
只要运行到continue,就开始了下一次循环的迭代
2、break 主要用于循环,但也经常出现在switch语句中 功能:直接跳出循环
#include <iostream>
#include "Log.h"
int main()
{
for (int i = 0; i < 5; i++ )
{
if (i > 1)
break;//i=2时遇到break,循环结束
Log("Hello World!");
std::cout << i << std::endl;
}
std::cin.get();
运行结果:
i=2时执行break语句,跳出循环。运行到break时循环就结束。
3、return 直接完全退出函数 函数需要返回值,当输入return上下文(context)自动返回
yoid可以直接用return。如果函数需要返回值,在输入return的时候就必须要提供值。
return是需要一个整数作为返回值的函数
#include <iostream>
#include "Log.h"
int main()
{
for (int i = 0; i < 5; i++ )
{
if (i > 1)
std::cin.get();//保持输出窗口常开
return 1;
Log("Hello World!");
std::cout << i << std::endl;
}
std::cin.get();
}
结果:返回代码为1.
遇到return,自动退出当前函数并返回值,return不用像break和continue那样在循环内使用。return可以被写在任何地方。
控制流语句控制程序的运行,循环、控制流、条件语句本身就是逻辑编程的本质,是用来控制程序运行的工具。
15
最后
以上就是幽默书包为你收集整理的八、C++中的循环 for while do...while及控制流语句的全部内容,希望文章能够帮你解决八、C++中的循环 for while do...while及控制流语句所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复