【C++】第5章 循环和关系表达式 知识总结
来源:互联网 发布:安全知识网络竞赛答题 编辑:程序博客网 时间:2024/05/19 09:16
《C++ Primer Plus》第5章知识点总结
for循环
for(initialization; test-expression; update-expression)
body
语句:age = 100;
表达式:age = 100
对于 for( int i=0 ;i<5 ;i++),这种语句c语言不行,c++可以
C:for (expression; expression; expression)
statement
C++:for (for-init-statement condition; expression)
statement
逗号运算符花絮
(1)先确保计算第一个表达式,然后计算第二个表达式,比如 i=20 , j=2*i 这个表达式是安全的
(2)逗号表达式的值是第二部分的值。例如,上述表达式的值为40,因为 j=2*i 的值为40
(3)在所有运算符中,逗号运算符的优先级是最低的。例如 cata=17,240;被解释为(cata=17),240;也就是说,将cata设置为17,240不起作用。然而由于括号的优先级最高,下面的表达式将 cata 设置为240——逗号右侧的表达式值
cats=(17,240);
(1)等于运算符:==
musicians==4,该表达式的值为true或false
(2)赋值运算符:=
musicians=4,该表达式的将4赋给musicians
检测相等或排列顺序
strcmp():测试C-风格字符串是否相等(根据字母的排列顺序来检测)(C风格就是char a[50]这样的字符串)
(1)若str1和str2相等,则下面的表达式为true
strcmp(str1,str2)==0
(2)如果str1和str2不相等,则下面的表达式为true
strcmp(str1,str2)!=0
strcmp(str1,str2)
(3)如果str1在str2的前面,则下面的表达式为true
strcmp(str1,str2)<0
(4)如果str1在str2的后面,则下面的表达式为true
strcmp(str1,str2)>0
那么比较string类型的字符串在c++更简单,不用strcmp,直接用关系运算符
比如:word=="mate" 这样
while循环
while(test-condition)
body
等待一段时间:编写延时循环
long wait=0; while(wait<10000) wait++;头文件ctime,首先,定义了一个符号符号常量——CLOCKS_PER_SEC,该常量等于每秒钟包含的系统时间单位数。因此,将系统时间除以这个值,可以得到秒数,或者将秒数乘以CLOCK_PER_SEC,可以得到以系统时间单位为单位的时间。其次,ctime将clock_t作为clock()返回类型的别名,这意味着可以将变量声明为colck_t类型,编译器把它转换为long、unsigned int或适合系统的其他类型。下面是一个例子展示如何使用clock()和头文件ctime
#include <iostream>#include <ctime>int main(){ using namespace std; cout<<"Enter the delay time,in seconds: "; float secs; cin>>secs; clock_t delay=secs*CLOCKS_PER_SEC; cout<<"starting\n"; clock_t start=clock(); while(clock()-start<delay) ; cout<<"done \n"; return 0;}
(1)#define BYTE char
这表示,预处理器将在编译程序时用char替代所有的BYTE,从而使BYTE称为char的别名
(2)typedef char byte;
下面时通用格式:typedef typeName aliasName
do while循环
do
body
while(test - expression);
循环和文本输入
(1)使用原始的cin进行输入
如果程序要使用循环来读取来自键盘的文本输入,则必须由办法知道何时停止读取。一种办法是选择某个特殊字符——有时被称为哨兵字符,将其作为停止标志。下面是一个例子:输入字符,当读取到#时停止输入
#include <iostream>int main(){ using namespace std; char ch; int count=0; cout<<"Enter characters; enter # to quit: \n"; cin>>ch; while(ch!='#') { cout<<ch; ++count; cin>>ch; } cout<<endl<<count<<" characters read\n"; return 0;}
如果读取的第一个字符不是#,则程序进入该循环,显示字符,增加计数,然后读取下一个字符。循环体中的最后一步是极为重要的,没有这一步,循环将反复处理第一个输入字符,一直进行下去。有了这一步后,程序就可以处理到下一个字符。
但是存在一个问题,就是本代码如果输入的字符有空格,那么在输出时会省略空格。原因在cin。读取char值时,与读取其他基本类型一样,cin将忽略空格和换行符。下面是另一种模式可以补救这一点
(2)使用cin.get(char)进行补救通常,逐个字符读取输入的程序需要检查每个字符,包括空格、制表符和换行符。成员函数cin.get(ch)读取输入中的下一个字符(即使它时空格),并将其赋给变量ch。下面是一个上面代码修改之后的例子
#include <iostream>int main(){ using namespace std; char ch; int count=0; cout<<"Enter characters; enter # to quit: \n"; cin.get(ch); while(ch!='#') { cout<<ch; ++count; cin.get(ch); } cout<<endl<<count<<" characters read\n"; return 0;}
(3)使用哪一个cin.get()cin.get()可以有多个版本,因为C++支持被称为函数重载的OOP特性。函数重载允许创建多个同名函数,条件是他们的参数列表不同,下面时两个例子
①cin.get():指的是不接受任何参数的版本
②cin.get(name,ArSize):数组名name(字符串(char*类型)的地址)和ArSize(int类型的整数)(机主,数组名是其第一个元素的地址,因此字符数组名的类型为char*)
二维数组
int maxtemps[4][5];//声明一个二维数组 int maxtemps[4][5]=//声明一个二维数组并进行初始化 { {96,100,87,101,105}, {96,98,91,107,104}, {97,101,93,108,107}, {98,103,95,109,108}, };
- 【C++】第5章 循环和关系表达式 知识总结
- [c++primeplus6th]-第5章.循环和关系表达式
- 第5章 循环和关系表达式
- 第5章——循环和关系表达式
- C++ primer plus 第5章 循环和关系表达式
- 第五天(循环和关系表达式)
- 5 循环和关系表达式
- 【读书笔记:C++ primer plus 第六版 中文版】第5章 循环和关系表达式
- 循环和关系表达式
- 第五章 循环和关系表达式
- Lesson 5:循环和关系表达式
- Day4 循环和关系表达式
- 【C++】第7章 函数 知识总结
- 【C++ Primer】第五章 循环和关系表达式
- C++ Primer Plus 第五章 循环和关系表达式
- 第五章 循环和关系表达式(1)
- 【C++】第6章 分支语句和逻辑运算符 知识总结
- 【C++】第1-2章 C++基础 知识总结
- 京东爬取评论简单分析
- 如何安装Composer和使用Packagist 镜像
- DAG上的动态规划--硬币问题
- UVa 102|Ecological Bin Packing|暴力
- mvc +ef 框架实现上传excel表格并实现批量增加
- 【C++】第5章 循环和关系表达式 知识总结
- 数据处理过程——Data Processing
- 高级加密标准
- 1712: 数交点 正n边形内交点的个数
- HNU OJ题库 1001A数塔
- JS(7)
- 正则表达式
- 利用U盘安装ubuntu,UltraISO便捷启动选择syslinux 总是出现弹窗 “找到多余一个分区”
- 设计模式(九)——适配器模式