c++循环和关系表达式小结

本文系本人学习过程中的原创笔记,如未声明原作者,请勿转载。

  • 使用char数组
    假如要记录用户输入的new York City (带空格的字符串)
    char a [20];
    cin.get(a,19)
    //或者 cin.getline(a,19)

  • 使用string循环
    假如要记录用户输入的new York City (带空格的字符串)
    string a;
    getline(cin,a);

  • for循环
    for(初始值;测试表达式;更新表达式)【注意是分号分隔】
    c++第二个参数可以设置为任意表达式,编译器最终会将结果强制转换成布尔型
    当结果转换出来为0时候,代表着结束

  • C++惯用的格式
    在for if 等循环语句和括号之间加上空格,在函数与括号之间不加空格

  • 表达式:任何值或者任何有效的值和运算符的结合
    10、 25*10 、 3+3
    每一个c++表达式都有自己的值

  • 语句和表达式的关系

任意表达式加上分号都是语句
去掉分号的语句不一定是表达式 int abc;

  • const值

定义一个const值来表示数组中元素的个数是一个好办法
Const int arsize=110;
Char abc [arsize];

  • i++;++i;

理解自加自减
后缀运算符指的是 ++在后面

将递增运算符运用于指针时,指针的值增加其指向的数据类型占用的字节数
后缀比前缀和解除引用的运算符都要高
++pt 先将地址往前挪,然后用指向那个地址
++pt 先找到pt的值,然后将(*pt)+1

  • 逗号运算符和赋值运算符

逗号运算符:最常见的用途就是讲两个或更多的表达式放进for循环表达式中,
其他使用就是,确保先计算第一个表达式,然后计算第二个表达式 int a=20,j=2*i;
Cate=17,250 解释为(cate=17),250 将cate的值被赋为17, 250不起任何作用
(Cate=17,250)由于逗号的优先级最高,所以这种写法是 将250赋值给cate
千万不要混淆等于运算符== 和赋值运算符 =
Musicians== 4 判断是否正确,这个表达式的值为true或false
Musician=4 将4赋值给musician
Word==”mate”这个做法不是判断两个字符串是否相等,而是查看他们是否存储在相同的地址上

  • stcrmp ()函数的用法

两个字符串相同,则返回0
如果第一个字符串按字母顺序排在第二个字符串之前 则返回负值
如果 ………………………………………………………………………之后 则返回正值

  • While ()循环的使用

当括号中值为0或false时候停止循环while(name[i])当name[i]为\0时 即false

循环的规则:
1、指定循环终止的条件
2、试之前初始化条件
3、在条件被试之前更新条件

为类型建立别名的方式
1、 使用预处理器 #define B char 用B来代表char
2、 使用关键字typedef
3、 typedef char byte将byte作为char的别名
4、 对于复杂的类型别名而言,使用typedef比#define更好
5、 typedef不会创建新的类型,而是为已有的类型建立一个新名称

  • do while 的使用示例

判断用户的输入
c++循环和关系表达式小结

  • 基于范围的for循环

int a [5]={1,2,3,4,5}
for (int x:A)
cout<<x<<endl;
x代表着数组A的第一个元素 该循环将显示数组中的每个值
要更改数组中的值,则需要使用不同的循环变量
for (int &x:A)
x=x*0.8;
这样做能够改变数组中的值

将判断条件用cin放进循环体内可以控制训话的结束
cin.get(char)可以读取一行

  • cin.get有三个版本

版本一:接受两个参数
char name [10]
cin.get(name,10).get();

版本二:接受一个char参数

版本三:不接受任何参数版本

  • 文件尾结尾 ——EOF检测文件尾()

假设在Windows中有一个名叫gofish.exe程序和一个名为fish的文本文件,
则可以在命令提示符模式下输入下面的命令 gofish<fish
程序将从fish文件中(而不是键盘)获取输入
<符号是Unix和Windows命令提示符模式的重定向运算符

重定向——允许使用文件替换键盘输入

通过键盘模拟文件尾条件
Unix中 Ctrl+D来实现
Windows命令提示符 Ctrl+Z+Enter

检测到EOF后,cin将eofbit和failbit都设置为1,
通过成员函数eof()查看eofbit是否被设置,如果被检测到EOF,cin.eof()将返回bool值 true否则返回false
若eofbit或failbit被设置为1,则fail()返回true 否则返回false
在实际应用中更多的是使用fail()而不是eof()

int A=[4][5] 数组中有四个元素,每个元素又包含了五个元素(四行五列)
用嵌套循环打印一个二维数组
可以第一层循环打印行,第二层循环打印列

  • 初始化二维数组:
    c++循环和关系表达式小结

  • 二维数组的使用:

c++循环和关系表达式小结

嵌套循环打印了一个二维数组
如果希望字符串是可以修改的,则应该省略限定符const

cin>>a 忽略空格,换行符,制表符
cin.get(ch)将读取所有输入存储在ch中
ch=cin.get()函数返回所有字符到ch