循环控制就是控制程序重复执行,当不符合循环条件时停止循环。使用循环结构可以使程序代码更加简洁,减少冗余。掌握循环结构是程序设计的最基本要求。
循环语句包含:while循环、do...while循环和for循环语句,这三种循环语句可以相互转换。
一、while循环
首先,看如下代码:
while (表达式)
{
cout << "while循环中..." << endl;
}
while后面括号里面的表达式必须是bool类型或者整型。
如果表达式一直为true(或者不为0的整数),那么while下的代码将无限循环地执行下去。
如果表达式一直为false(或者整数0),那么while下的代码将不会执行。
所以,以上两种情况变得毫无意义(特殊需求除外),我们一般避免循环一直不执行,或者无限执行。
再来看一下以下代码:
int sum = 0;
while (sum < 100)
{
sum += 11;
cout << "sum:" << sum << endl;
}
while后面括号中的表达式才是一个合理的表达式,它不会不执行,也不会无限执行。它最终的输出结果是:
sum:11
sum:22
sum:33
sum:44
sum:55
sum:66
sum:77
sum:88
sum:99
sum:110
二、do...while循环
将while语句转成do...while语句如下:
do
{
sum += 11;
cout << "sum:" << sum << endl;
} while (sum < 100);
输出结果是:
sum:11
sum:22
sum:33
sum:44
sum:55
sum:66
sum:77
sum:88
sum:99
sum:110
三、while和do...while的区别
while (表达式1)
{
表达式2;
}
do
{
表达式2;
} while (表达式1);
while和do...while的区别是:
while先执行表达式1,再执行表达式2;
do...while先执行表达式2,再执行表达式1;
四、for循环
for循环的语法格式如下:
for (int i = 0; i < 10; i++)
{
cout << "i:" << i << endl;
}
该for循环只会循环10次,for后面小括号有3个表达式,分别是:初始化变量
、变量条件
、变量变化的表达式
。
假设去除条件,代码如下:
for (int i = 0;; i++)
{
cout << "i:" << i << endl;
}
该循环会无限循环下去。
变量的初始化也可以在其它地方初始化,代码如下:
int i = 0;
for (; i < 10; i++)
{
cout << "i:" << i << endl;
}
变量的条件也可以在for循环体中判断,代码如下:
int i = 0;
for (; ; i++)
{
if (i < 10) {
cout << "i:" << i << endl;
}
}
最后,变量表达式也可以写到for循环体中,代码如下:
int i = 0;
for ( ; ; )
{
if (i < 10) {
cout << "i:" << i << endl;
}
i++;
}
但是,以上代码的for循环将会无休止的执行下去,变量的条件表达式是跳出循环的重要因子。
请看第五小节循环控制。
五、循环控制
while (表达式)
{
}
do
{
} while (表达式);
for (; 表达式;)
{
}
while和do...while跳出循环的默认因子是小括号里面的表达式。
看一下第四小节中的代码:
int i = 0;
for ( ; ; )
{
if (i < 10) {
cout << "i:" << i << endl;
}
i++;
}
如何解决for循环无法跳出的问题,我们需要对代码进行改造:
int i = 0;
for (;;)
{
if (i < 10) {
cout << "i:" << i << endl;
}
else
{
break;
}
i++;
}
break属于循环控制的一种,可以直接跳出for循环。
循环控制语句有三种
continue:跳出当前循环,执行下一个循环;
break:跳出for循环,跳出之后,for循环不再执行;
goto:无条件跳转语句,用于改变语句的执行顺序。
continue语句的代码演示:
for (int index = 0; index < 10; index++)
{
if (index % 2 == 0) {
continue;
}
cout << "index:" << index << endl;
}
输出结果为:
index:1
index:3
index:5
index:7
index:9
goto语句代码演示:
for (;;)
{
goto label;
}
label:
cout << "执行结束" << endl;
goto语句需要和标签
一起使用,标签
的英文字母可以任意定义。goto语句后面紧跟着是标签
,它会无条件的直接跳转到标签。
[本章完...]
网友评论