栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++ Prime Plus学习笔记:第五章 循环和关系表达式

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++ Prime Plus学习笔记:第五章 循环和关系表达式

第五章 循环和关系表达式 5.1. for循环
for(initialization; test-expression; updata-expression){
    body
}
  1. 设置初始值
  2. 执行测试
  3. 执行循环
  4. 更新用于测试的值

continue 跳过本次循环

break 结束所有循环

5.1.5. ++ –

前缀和后缀的效果是一样的,但是作用时间不同

int a = 20;
int b = 20;
cout << "a = " << a << " b = " << b << endl;
cout << "a++ = " << a ++ << " ++b = " << ++b << endl;
cout << "a = " << a << " b = " << b << endl;


a++表示使用a的当前值来计算表达式,计算完后将a的值加1

++b表示先将b的值加1,然后用新的b来计算表达式

int x = 5;
int y = ++x;
// y is 6 and x is 6

int z = 5;
int y = z++;
// y is 5 and z is 6
5.1.6. 副作用和顺序点

副作用:side effect。在计算表达式时对某些东西(如存储在变量当中的值)进行了修改

顺序点:sequence point。程序执行过程中的一个点。在这里,进入下一步之前将确保对所有的副作用进行了评估。

C++中,一个分号就是一个顺序点。

5.1.14 C风格字符串的比较

如要想要知道字符数组中的字符串是不是mate。word是数组名。

word == “mate”

这个语句是错误的,因为word这个数组名指向的是地址。

可以用strcmp()函数来比较。这个函数接受两个字符串地址作为参数。可以使指针、字符串常量或者字符数组名。

如果字符串相同,返回0。

如果第一个字符串按字母顺序排在第二个字符串之前,返回一个负数。

否则返回一个正数。

注意,这个判断的长度是通过结尾的空字符来确定的。

5.1.15. 比较string类字符串

可以将关系运算符用于string对象。

也就是说,可以使用==、!=

因为string类重载了运算符!=

5.2. while循环 5.2.2. 等待一段时间:编写延时循环

clock()函数返回程序开始执行后所用的系统时间。但是它返回的不一定是秒,某些系统上可能是long或者unsigned long或者其他类型。

ctime头文件中定义了一个符号常量CLOCKS_PER_SEC,该常量等于每秒钟包含的系统时间单位数。所以可以将系统时间除以这个值,就能得到秒数。或者将秒数乘以这个常量,就可以得到以系统时间单位为单位的时间。

其次,ctime将clock_t作用clock()返回类型的别名,这意味着可以将变量生命为clock_t类型。编译器会把它转换为long、unsigned int或者其他类型。

    cout << "enter the delay time, in seconds: ";
    float sec;
    cin >> sec;
    clock_t delay = sec * CLOCKS_PER_SEC;
    cout << "startingan";
    clock_t start = clock();
    while (clock() - start < delay);
    cout << "done an";

类型别名:C++为类型建立别名的方式有两种

第一种就是用预处理器#define

第二种是使用typedef来创建

typedef typeName aliasName;

typedef char * byte_pointer;

5.3. do while

先执行一次do

然后再进行while的判断

5.4. 基于范围的for循环(C++11)
double prices[5] = {4.99, 10.99, 6.87, 7.99, 8.49};
for(double x : prices)
    cout << x << endl;

其实就是迭代。。

如果想要通过迭代来修改数组的元素,就用下面的语法

for(double &x : prices)
    x *= 0.8;
for(int x : {3, 5, 2, 8, 6})
    cout << x << " " << endl;
5.5. 循环和文本输入 5.5.4. 文件尾条件

检测到EOF后,cin将eofbit和failbit都设置为1

可以通过eof()来查看eofbit是否被设置

如果eofbit或failbit被设置为1,则fail()返回true

同时,他们是读取后才报告的,而不是预先报告。

while(cin.fail() == false){

}

5.5.5. 另一个cin.get()版本

getchar()和putchar()

cin.get()接收下一个字符,返回一个对象。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/352780.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号