设为首页 加入收藏

TOP

1.4.3 if语句
2013-10-07 00:30:13 来源: 作者: 【 】 浏览:64
Tags:1.4.3 语句

1.4.3  if语句

求1到10之间数的和,其逻辑延伸是求用户提供的两个数之间的数的和。可以直接在for循环中使用这两个数,使用第一个输入值作为下界而第二个输入值作为上界。然而, 如果用户首先给定的数较大,这种策略将会失败:程序会立即退出for循环。因此,我们应该调整范围以便较大的数作上界而较小的数作下界。这样做,我们需要一种方式来判定哪个数更大一些。

像大多数语言一样,C++(www.cppentry.com)提供支持条件执行的if语句。使用if语句来编写修订的求和程序如下:

#include <iostream>
int main()
{
    std::cout << "Enter two numbers:" << std::endl;
    int v1, v2;
    std::cin >> v1 >> v2;  // read input
    // use smaller number as lower bound for summation
    // and larger number as upper bound
    int lower, upper;
    if (v1 <= v2) {
       lower = v1;
       upper = v2;
    } else {
       lower = v2;
       upper = v1;
    }
    int sum = 0;
    // sum values from lower up to and including upper
    for (int val = lower; val <= upper; ++val)
       sum += val; // sum = sum + val
 
    std::cout << "Sum of " << lower
             << " to " << upper
             << " inclusive is "
             << sum << std::endl;
    return 0;
}

如果我们编译并执行这个程序并给定输入数为7和3,程序的输出结果将为:

Sum of 3 to 7 inclusive is 25

这个程序中大部分代码我们在之前的举例中已经熟知了。程序首先向用户输出提示并定义四个int变量,然后从标准输入读入值到v1和v2中。仅有if条件语句是新增加的代码:

// use smaller number as lower bound for summation
// and larger number as upper bound
int lower, upper;
if (v1 <= v2) {
    lower = v1;
    upper = v2;
} else {
    lower = v2;
    upper = v1;
}

这段代码的效果是恰当地设置upper和lower。if的条件测试v1是否小于或等于v2。如果是,则执行条件后面紧接着的语句块。这个语句块包含两条语句,每条语句都完成一次赋值,第一条语句将v1赋值给lower,而第二条语句将v2赋值给upper。

如果这个条件为假——也就是说,如果v1大于v2——那么执行else后面的语句。这个语句同样是一个由两个赋值语句组成的块,把v2赋值给lower而把v1赋值给upper。

习题                                                                                

习题1.14  如果输入值相等,本节展示的程序将产生什么问题

习题1.15  用两个相等的值作为输入编译并运行本节中的程序。将实际输出与你在上一习题中所作的预测相比较,解释实际结果和你预计的结果间的不相符之处。

习题1.16  编程(www.cppentry.com)输出用户输入的两个数中的大者。

习题1.17  编程(www.cppentry.com)要求用户输入一组数。输出信息说明其中有多少个负数。

< xml:namespace prefix = std />


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

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇1.5.2 初窥成员函数 下一篇1.4.2 for语句

评论

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