设为首页 加入收藏

TOP

1.4.1 while语句
2013-10-07 00:30:33 来源: 作者: 【 】 浏览:59
Tags:1.4.1 while 语句

1.4  控制结构

语句顺序地执行:函数的第一条语句首先执行,接着是第二条,依次类推。当然,少数程序——包括我们将要编写的解决书店问题的程序——可以仅用顺序执行语句编写。事实上,程序设计语言提供了多种控制结构支持更为复杂的执行路径。本节将简要地介绍C++(www.cppentry.com)提供的控制结构,第6章再详细介绍各种语句。

1.4.1 while语句

while语句提供迭代执行。可以用while语句编写一个从1到10(包括10)的求和程序,如下:

#include <iostream>
int main()
{
    int sum = 0, val = 1;
    // keep executing the while until val is greater than 10
    while (val <= 10) {
       sum += val;    // assigns sum + val to sum
       ++val;       // add 1 to val
    }
    std::cout << "Sum of 1 to 10 inclusive is "
             << sum << std::endl;
    return 0;
}

编译并执行后,将输出:

Sum of 1 to 10 inclusive is 55

与前面一样,程序首先包含iostream头文件并定义main函数。在main函数中定义两个int型变量:sum保存总和,val表示从1到10之间的每一个值。我们给sum赋初值0,而val则从1开始。

重要的部分是while语句。while结构有这样的形式:

while (condition) while_body_statement;

while通过测试condition和执行相关的while_body_statement来重复执行,直到condition为假。

condition是一个可求值的表达式,所以可以测试其结果。如果结果值非零,那么条件为真;如果值为零,则条件为假。

如果condition为真(表达式求值不为零),则执行while_body_statement。执行完后,再次测试condition。如果condition仍为真,则再次执行while_ body_statement。While语句一直交替测试condition和执行while_ body_statement,直到condition为假为止。

在这个程序中,while语句是

// keep executing the while until val is greater than 10
while (val <= 10) {
    sum += val;    // assigns sum + val to sum
    ++val;       // add 1 to val
}

While语句的条件用了小于或等于操作符(<=操作符),将val的当前值和10比较,只要val小于或等于10,就执行while循环体。这种情况下,while循环体是一个包含两个语句的块:

{
    sum += val;    // assigns sum + val to sum
    ++val;       // add 1 to val
}

块是被花括号括起来的语句序列。C++(www.cppentry.com)中,块可用于任何可以用一条语句的地方。块中第一条语句使用了复合赋值操作符(+=操作符),这个操作符把它的右操作数加至左操作数,这等效于编写含一个加法和一个赋值的语句:

sum = sum + val; // assign sum + val to sum

因此第一条语句是把val的值加到sum的当前值,并把结果存入sum,

第二条语句

++val;       // add 1 to val

使用了前自增操作符(++操作符),自增操作符就是在它的操作数上加1,++val和val = val + 1是一样的。

执行while的循环体后,再次执行while的条件。如果val的值(自增后)仍小于或等于10,那么再次执行while的循环体。循环继续,测试条件并执行循环体,直到val的值不再小于或等于10为止。

一旦val的值大于10,程序就跳出while循环并执行while后面的语句,此例中该语句打印输出,其后的return语句结束main程序。

关键概念:C++(www.cppentry.com)程序的缩排和格式                                                               

C++(www.cppentry.com)程序格式非常自由,花括号、缩排、注释和换行的位置通常对程序的语义没有影响。例如,表示main函数体开始的花括号可以放在与main同一行,也可以像我们那样,放在下一行的开始,或放在你喜欢的任何地方。唯一的要求是,它是编译器所看到在main的参数列表的右括号之后的第一个非空格、非注释字符。

虽然说我们可以很自由地编排程序的格式,但如果编排不当,会影响程序的可读性。例如,我们可以将main写成单独的一长行。这样的定义尽管合法,但很难阅读。

关于什么是C或C++(www.cppentry.com)程序的正确格式存在无休止的争论,我们相信没有唯一正确的风格,但一致性是有价值的。我们倾向于把确定函数边界的花括号自成一行,且缩进复合的输入或输出表达式从而使运算符排列整齐,正如1.2.2节的main函数中的输出语句那样。随着程序的复杂化,其他缩排规范也会变得清晰。

记住重要的是可能存在其他格式化程序的方式。在选择格式化风格时,要考虑提高程序的可读性,使其更易于理解。一旦选择了某种风格,就要始终如一地使用。

【责任编辑:董书 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇1.2.1 标准输入与输出对象 下一篇1.5.1 Sales_item类

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: