C/CPLUS

C++<第五篇>:循环语句

2022-01-10  本文已影响0人  NoBugException

循环控制就是控制程序重复执行,当不符合循环条件时停止循环。使用循环结构可以使程序代码更加简洁,减少冗余。掌握循环结构是程序设计的最基本要求。
循环语句包含: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语句后面紧跟着是标签,它会无条件的直接跳转到标签。

[本章完...]

上一篇 下一篇

猜你喜欢

热点阅读