C++ primer 1.4控制流

1 while

while语句

#include "iostream"

int main() {
    int sum = 0, val = 1;

    while (val <= 10) {
        sum += val;
//        val += 1;
        ++val;
    }
    std::cout << "sum of 1 to 10 inclusive is " << sum << std::endl;

    return 0;
}
sum of 1 to 10 inclusive is 55
while(condition)
	statement

while语句的执行过程是交替地检测condition条件和执行关联地语句statement,直至condition为假时停止。只要condition为真,statement就会被执行。当执行完statement,会再次检测condition。如果condition仍未真,statement再次被执行。while语句持续地交替监测condition和执行statement,直至condition为假为止。

练习

1.9

#include <iostream>

int main() {
    int num = 50, sum = 0;
    while (num <= 100) {
        sum += num;
        ++num;
    }

    std::cout << "50-100总和是: " << sum << std::endl;
    return 0;
}
50-100总和是: 3825

1.10

#include <iostream>

int main() {
    int num = 10, sum = 0;
    while (num >=0) {
        sum += num;
        --num;
    }

    std::cout << "10到0总和: " << sum << std::endl;
    return 0;
}
10到0总和: 55

1.11

#include <iostream>

int main() {
    std::cout << "请输入两个数字:" << std::endl;
    int n1 = 0, n2 = 0, sum = 0;
    std::cin >> n1 >> n2;

    if (n1 > n2) {
        while (n1 >= n2) {
            std::cout << n1 << " ";
            --n1;
        }
    } else {
        while (n1 <= n2) {
            std::cout << n1 << " ";
            ++n1;
        }
    }

    return 0;
}

2 for

int main() {
    int sum = 0;
    for (int val = 1; val <= 10; ++val)
        sum += val;
    std::cout << "sum of 1 to 10 inclusive is " << sum << std::endl;

    return 0;
}

for包含循环头和循环体。循环头控制循环体的执行次数。

练习

1.12

0

1.14 for和while区别

正解:
在循环次数已知的情况下,for循环的形式显然更为简洁。
而循环次数无法预知时,用while循环实现更适合。用特定条件控制循环是否执行,循环体中执行的语句可能导致循环判定条件发生变化。

读取数量不定的输入数据

#include "iostream"

int main() {
    int sum = 0, value = 0;
    while (std::cin >> value)
        sum += value;

    std::cout << sum << std::endl;

    return 0;
}

Ctrl+D终止循环输出结果

3 4 5

^D
12

进程已结束,退出代码0

!!!当我们使用一个istream对象作为条件时,其效果是检测流的状态。如果流是有效的,即流未遇到错误,那么检测成功。当遇到文件结束符(end-of-file),或遇到一个无效输入时(例如读入的值不是一个整数),istream对象的状态会变为无效。处于无效状态的istream对象会是条件变为假。

3 if

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值