菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
255
0

c++第三十天

原创
05/13 14:22
阅读数 24024

P154~p159:
语句
1、通常情况下顺序执行。

 

2、C++提供一组控制流(flow-of-control)语句以支持更复杂的执行路径。

 

3、空语句的作用:语法上需要一条语句,但是逻辑上不需要。

    while(val <= 10) {
        ;    // 空语句
    }

注意:使用空语句时加上注释,提高可读性。

 

4、复合语句的作用:语法上需要一条语句,但是逻辑上需要多条语句。

 

ps:复合语句也被叫做块(block),一个块就是一个作用域

 

语句作用域

 

if语句
1、C++规定:else与离它最近的尚未匹配的if匹配。

 

练习 5.1
见上文

 

练习 5.2
见上文

 

练习 5.3
可读性降低。

#include<iostream>
int main()
{
    int sum = 0, val = 1;
    while(val <= 10) sum += val, ++val;
    std::cout << sum << std::endl;
    return 0;
}

 

练习 5.4
a iter没有初始化
b status应该定义在语句外部

 

练习 5.5

#include<iostream>
#include<vector>
#include<string>
using std::vector;
using std::string;
int main()
{
    const vector<string> scores = {"f", "d", "c", "b", "a", "a++"};
    string lettergrade;
    int grade;
    std::cin >> grade;
    if (grade < 60) {
        lettergrade = scores[0]; // vector支持下标访问
    } else {
        lettergrade = scores[(grade - 50)/10];
        if (grade != 100) {
            if (grade % 10 > 7) {
                lettergrade += '+';
            } else if (grade % 10 < 3) {
                lettergrade += '-';
            }
        }
    }
    std::cout << lettergrade << std::endl;
    return 0;
}

 

练习 5.6

#include<iostream>
#include<vector>
#include<string>
using std::vector;
using std::string;
int main()
{
    const vector<string> scores = {"f", "d", "c", "b", "a", "a++"};
    string lettergrade;
    int grade;
    std::cin >> grade;
    lettergrade = (grade < 60) ? scores[0] : (grade == 100) ? scores[(grade - 50)/10] : (grade % 10 > 7) ? scores[(grade - 50)/10] + "+" : (grade % 10 < 3) ? scores[(grade - 50)/10] + "-" : scores[(grade - 50)/10];
    std::cout << lettergrade << std::endl;
    return 0;
}

 

练习 5.7
a 少了分号
b 缺少花括号
c ival要在括号外面定义
d ival未定义。(。。。)

 

练习 5.8
书上有。else与离它最近的尚未匹配的if匹配。

发表评论

0/200
255 点赞
0 评论
收藏
为你推荐 换一批