Part2 数据类型与流程控制
Posted LeoSirius
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Part2 数据类型与流程控制相关的知识,希望对你有一定的参考价值。
2.1第二章导论
2.2C++的特点和程序实例
C++的发展和起源:
从C语言发展演变而来,最初被称为“带类的C”
83年正式取名C++
98年成ISO批准为国际标准
03年第二版
11年第三版C++11
14年C++14,作为C++11的小扩展,主要提供漏洞修复和小改进
C++的特点:
兼容C,支持面向过程
支持面向对象
支持泛型程序设计
//2-1.cpp #include<iostream> using namespace std; int main(){ cout<<"Hello!"<<endl; cout << "Welcome to c++!" << endl; return 0; }
2.3基本数据类型、常量、变量
字符串类型:
有字符串常量,基本类型中没有字符串变量。
字符串变量的表示:
采用字符数组存储字符串(C风格的字符串)
标准C++类库中的string类(C++风格的字符串)
2.4算数运算与复制运算
2.5实验二:简单的程序设计(上)
2.6数据的输入和输出
I/O流:
在C++中,将数据从一个对象到另一个对象的流动抽象为“流”。流在使用前要建立,使用后要被删除。
数据的输入与输出是通过I/O流来实现的,cin和cout是预定义的流类对象。
预定义的插入和提取运算符:
<<是预定义的插入符,作用在流类对象cout上变可以实现向标准输出设备输出。
>>是预定义的提取符,从键盘提取数据放到相应的变量中。
常用I/O流类库的操纵符:
endl 插入换行符,并刷新流
ends 插入空字符
setprecision(int) 设置浮点数的小数位数(包括小数点)
setw(int) 设置域宽
例:cout << setw(5) << setprecision(3) << 3.1415; (setw和setprecision要引入头文件iomanip)
2.7if语句
2.8switch语句
2.9循环结构
//2-6从键盘输入一个数,将其反转后输出 #include<iostream> using namespace std; int main(){ int n, right_digit, newnum = 0; cout << "Enter the number:"; cin >> n; cout << "The number in reverse order is "; do{ right_digit = n % 10; cout << right_digit; n /= 10; }while(n != 0); cout << endl; return 0; } //2-8输入一个整数,求出他的所有因子 #include<iostream> using namespace std; int main(){ int n; cout << "Enter a positive integer:"; cin >> n; cout << "Number " << n << " Factors "; for(int k = 1; k <= n; k++) if(n%k == 0) cout << k << " "; cout << endl; return 0; } //2-10输入一系列整数,统计出正整数的个数i和负整数的个数j,读入0则结束 #include<iostream> using namespace std; int main(){ int i = 0, j = 0, n; cout << "Enter some integers please(enter 0 to quit):" << endl; cin >> n; while(n != 0){ if(n > 0) i += 1; if(n < 0) j += 1; cin >> n; } cout << "Count of positive integers: " << i << endl; cout << "Count of negative integers: " << j << endl; return 0; }
2.10自定义类型
类型别名:
1 typedef 已有类型名 新类型名表 (从C继承而来)
typedef double Area, Volume;
typedef int Natural;
Natural i1,i2;
Area a;
Volume v;
2 using 新类型名 = 已有类型名
using Area = double;
using Volume = double;
枚举类型:
定义方式:将全部可取值一一列出来
(这种是不限定作用域的枚举类型,从C中继承来)
不限定作用域枚举类型说明:
枚举元素是常量,不能对它们赋值
枚举元素具有默认值,它们依次为: 0,1,2,......。
枚举值可以进行关系运算。
整数值不能直接赋给枚举变量,如需要将整数赋值给枚举变量,应进行强制类型转换。
枚举值可以赋给整型变量。(因为枚举是整型的子集)
//2-11 #include<iostream> using namespace std; enum GameResult {WIN, LOSE, TIE, CANCEL}; int main(){ GameResult result; enum GameResult omit = CANCEL; //声明枚举可以不带enum关键字 for(int count = WIN; count <= CANCEL; count++){//枚举值可以赋给整型变量.枚举值可以进行关系运算。 result = GameResult(count); //整数类型赋值给枚举类型要进行强制转换 if(result == omit) cout << "The game was cancelled" << endl; else{ cout << "The game was played "; if(result == WIN) cout << "and we won!"; if(result == LOSE) cout << "and we lost."; cout << endl; } } return 0; }
auto类型与decltype类型
auto:编译器通过初始值自动推断变量的类型
例如:auto val = val1 + val2;
如果val1+val2是int类型,则val是int类型;
如果val1+val2是double类型,则val是double类型。
decltype:定义一个变量与某一表达式的类型相同,但并不用该表达式初始化变量
例如:decltype(i) j = 2;//表示j以2为初始值,但是j的类型和i一样。
以上是关于Part2 数据类型与流程控制的主要内容,如果未能解决你的问题,请参考以下文章
七日阅书2 Java的数据类型和流程控制《Java程序设计与计算思维》