i...">

chapter-5

作者: 峡迩 | 来源:发表于2017-06-22 20:56 被阅读0次

C++ Primer第五章!

'''

include "stdafx.h"

include<iostream>

include<string>

include<vector>

include<map>

include<stdexcept>

using namespace std;

int main()
{
//空语句
; //某些语法上需要语句,但是逻辑上不需要,则需要空语句。使用空语句时应该加上注释,便于理解!

//复合语句,也被称为块。一个块就是一个作用域。块不以分号作为结束!
{
    ;
}
//条件语句
const vector<string> scores = { "F","D","C","B","A","A++" };
double grade = 70;
if (grade < 60)
    cout << scores[0] << endl;
else
{
    cout << scores[(grade - 50) / 10];
}                                           //if语句还可以进行多层嵌套

map<char, int> cnt = { {'a',0},{ 'e',0 } ,{ 'i',0 } ,{ 'o',0 } ,{ 'u',0 } };
char ch;
int numbers_cnt = 0;
while (++numbers_cnt <= 6 && cin>>ch)
{
    switch (ch)
    {
    case 'a':               //case标签必须为整型常量表达式
        ++cnt.at(ch);
        break;              //break退出当前循环,如果没有加break,则最好加一段注释说清楚程序的逻辑
    case 'e':
        ++cnt.at(ch);
        break;
    case 'i':
        ++cnt.at(ch);
        break;
    case 'o':
        ++cnt.at(ch);
        break;
    case 'u':
        ++cnt.at(ch);
        break;
    default:                //如果没有任何一个case标签能够匹配上,则程序将执行default标签。
        break;
    }
}
auto map_cnt = cnt.cbegin();
while (map_cnt != cnt.cend())       //使用迭代器遍历map容器
{
    cout << map_cnt->first << ":" << map_cnt->second << endl;
    ++map_cnt;
}

int i_swich = 2;
switch (i_swich)                    //在switch中定义变量,应该避免控制流跨过变 量的初始化行为!
{
case 1:
    //string  file_name;            错误行为,控制流可能绕过file_name隐式初始化的变量
    //int ival = 0;                 错误行为,控制流可能绕过ival显示初始化的变量
    int jval;                       //正确,只声明,为初始化!
    break;
case 2:
    jval = 0;
    //cout << file_name.empty();
default:
    break;
}

//迭代语句,重复执行操作直到满足某个条件为止
//while(cin>>i)                 重复读取数据,直到读取失败
//for(decltype(i) j=0;j<5;++j)  for 循环
//for(auto i:cnt)               for范围,适用于容器、数组等
vector<int> v = { 1,2,3,4,5 };
for (auto &i : v)
{
    i = i * 2;
}
for (auto beg = v.begin(); beg != v.end(); ++beg)
{
    auto &r = *beg;
    r = r * 2;
}
auto beg = v.cbegin();
while (beg != v.cend())
{
    cout << *beg << "-";
    ++beg;
}
cout << endl;

//跳转语句, break/continue/goto/return
//break,跳出最近的循环;continue,跳出for、while本次循环且进入下次循环;goto,跳至带标签语句后,不要使用它!

//try语句块和异常处理
//throw表达式,引发一个异常;try语句块,处理异常代码

try {
    throw runtime_error("Error!");          //抛出异常,并处理异常。检查,抛出,捕获!
}
catch (runtime_error err)                   //runtime_error是<stdexcept>中定义的异常类,必须使用const char*提供初始化。
{
    cout << err.what() << endl;             //如果一段程序没有try语句块且发生了异常,系统会调用terminate函数并终止当前程序的执行。
}
cin.ignore();
return 0;

}
'''
//本章介绍了C++中常见的语句结构,顺带了说明了C++如何进行异常处理!

相关文章

  • chapter-5

    C++ Primer第五章! ''' include "stdafx.h" include i...

  • chapter-5 GC参数

    GC参数 1.堆的回顾 2.串行收集器 3.并行收集器 4.CMS收集器 5.Tomcat实例演示 堆的回顾

  • Chapter-5[分页内存管理]

    一、分页内存管理 1.1 解决问题之道 为了解决交换系统存在的缺陷,分页系统横空出世。分页系统的核心在于:将虚拟内...

网友评论

      本文标题:chapter-5

      本文链接:https://www.haomeiwen.com/subject/kaxqcxtx.html