第五章 循环和关系表达式(124-162)

因为前段时间学习matlab,准备建模比赛事情,所以耽误了c++primer的学习时间,一直拖到今天才更新笔记,学习了c++,感觉学习matlab很轻松,但比赛还是没有达到预期结果,尽力了,接下来会尽快结束c++Primer的学习!冲!
(笔记为本人使用c++primer plus复习c++内容所书写的,不会很具体,如有不对,希望大家指正!!!)

循环和关系表达式

for循环

一个for循环主要包括四个部分

  1. 设置初始值
  2. 执行测试,看看循环是否应当继续进行
  3. 执行循环操作
  4. 更新用于测试的值

如果循环体只有一句,可以不用大括号,缩进即可,两句及其以上,需要使用大括号,如果只缩进,系统只将第一句代码认为作循环体!

每个c++表达式都有值:

27 + 11
//表达式值为38
x = 11;
//表达式值为11
a = ( b = 1 ) + 2;

上述代码,a的值为3,虽然没问题,但不支持这样写,基于此,也支持这样:

a = b = c = 1; 

同时,可以将变量声明在for中,如下:

for ( int i = 0;i++;i<5)

但这样变量i只存在于循环中,循环结束,变量i也随之消失。
也可以利用for循环来访问字符串的每个字符,看作数组即可;
i++ ; i-- ; ++i ; --i; 区分这四个的意思;
还有一些组合赋值运算符: += ; -= ; /= ; %= ;

逗号运算符

这是以前没注意的一个点,如果两个表达式完成相同的任务,可以将两个表达式利用逗号运算符放在一个表达式的地方,但要注意和普通的逗号区分

int i.j;      //普通的逗号,分开两个变量!


for (i = 5, j = 1; j < i; j++,i++ )
//上述中使用两次逗号运算符
 i = 20, j = i * 2;

逗号表达式的值是第二部分的值,所以上述表达式的值为40

data = 17,50;

逗号运算符的优先级最低,所以上述表达式将17赋给data,而最后的50没意义。

如果一个数组存储一个字符串,要和规定的字符串进行比较,不能直接使用 数组名==字符串,要知道,c++中数组名代表数组第一个元素的地址,如果要比较,需要用到其他函数,比如strcmp;如果利用string定义字符串,则可以直接比较。

for和while循环几乎是一致的,两者可以转换,只存在三个差别:

  1. 在for循环中省略测试条件,则认为条件为True
  2. 在for循环中,可以使用初始化语句声明一个局部变量,在while中不可以
  3. 如果while循环体中包括continue语句,情况与for不同

通常知道循环次数,初始值等条件时,使用for循环,不知道循环执行次数时,使用while循环

c++还提供让程序等待一段时间,例如,给读者充足时间阅读某条信息时。

类型别名

有两种方法,第一是使用预处理器

#define BYTE char

第二是使用关键字typedef来创建别名

typedef char byte;

但两者存在一点不同,例如,如果声明char类型的指针别名,可以这样:

typedef char * byte_pointer; 

如果要声明一系列的变量时,不能使用预处理器,如下:

#define FLOAT_POINTER float *     
FLOAT_POINTER pa,pb;

//预处理器将转换为这样
float * pa,pb;

此时,pa是一个float *变量,但pb只是一个float变量

do whlie循环与之前循环不同是,先执行循环体,在判断测试条件,也就是至少执行一次循环体。而之前说的for,while都是先判断测试条件,如果不通过,则一次循环体也不会执行

循环读取来自键盘输入的文本,要知道何时停止读取,因此要选择一个特殊字符——哨兵字符,这一点与python是相同的,就不做过多说明了

在读取输入内容时,cin, cin.get, cin.get(ch)的区别,这一点之前总结过,不做太多说明了。

不同操作系统,都会有一个强制终止循环的形式,只是各不相同而已。

这一章最后的二维数组,也是最基本的概念,没什么特别的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值