1、for循环
for循环应该在C语言中是非常常见的,这里就不赘述了。
for ( 初始化循环变量;循环条件判定 ;更新循环遍历 )
{
循环体;
}
注意点: 递增运算符(++)与递减运算符(--)
注意递增与递减运算符出现时是在操作数后面还在在操作数前面,两者的区别非常重要。
粗略的讲:a++ 就是先使用a当前的值,等当前表达式使用完了之后再将a+1
++a就是马上将a的值加1 ,再在表达式中使用它。
组合赋值操作符
2、语句块
语句块 又叫做代码块 具体语法为:
{
代码块;
}
用两个花括号 来包裹多条语句,那么编译器就会将这些语句视为一条语句,一起执行。
注意点: 若是内部语句块与外部语句都声明了同样的变量,那么是什么情况呢?
在内部语句块变量声明位置 到 内部语句块结束的位置,新变量将会隐藏旧变量 ,而当内部语句块结束以后,旧变量才会重新出现。
3、字符串等值
在C++中 数组名中表示的是数组的地址。
字符串常量表示的是字符串的地址。
例如:定义了一个字符串变量,判断字符串是否与“mate”相等。实际上,使用关系运算符是无法对其进行比较的,而是在看两者存储的地址是否相等。
string word;
word == "mate";
同时,关系运算符虽然不能够用来比较字符串,但是实际上却是可以用来比较字符。因为字符实际上也是整型。
如果要比较字符串是否相等,就需要用到 strcmp()函数,该函数接受两个字符串地址作为输入。
该函数将会返回三种值 :0 ------表示两个字符串相等
正数值 -------表示第一个字符串排在第二个字符串之前
负数值 -------表示第一个字符串排在第二个字符串之后
学习了后面的章节,我们可以学习到 通过运算符重载 的方式,比较 字符串与对象。
4、while循环
while语法如下:
while (循环条件判断 指定循环终止的条件){
循环体;
更新循环变量;
}
名称别名:为类型建立别名的方式有两种
1: #define
2: typedef 注意 typedef并不会建立新类型,只是为已有的类型更名。
5、do while循环
显然 do while 循环会先执行一次循环体,再进行循环条件判断。
do
循环体;
while(循环条件判断);
基于范围的for循环
目的:对数组等容器的每个元素执行相同的操作
double pices[5] = {10.2, 120.3, 10.3, 23.02, 10.1};
for (double x : prices )
cout << x << std::endl;
实际上这就是在循环输出数组的值。
如果要修改数组的值,则代码需要做以下改动:
for (double &x, pices)
x = x * 0.8;
6、循环与文本输入
循环读取 字符时 使用cin会遇到问题。
在cin输入时,发送给cin的内容将会先在缓冲区内,只有在用户按下回车键以后,用户所输入的内容才会被发送给程序。
通常,逐个读取字符输入的程序需要检查每一个字符,包括空额、制表符、换行符。
解决办法:cin的成员函数 cin.get()可以读取输入中的下一个字符,即使他是空格
这个时候会感到疑惑?
我们之前使用了cin.get(name, size) 也使用了cin.get() 还有cin.get(char) 实际上它们虽然是重名的,但是实际上这是运用了函数重载的方法,函数重载是指,使用了相同的函数名但是由于参数列表不同,所以函数在使用的时候,会根据使用时的参数自动去调用对应的函数。
7、嵌套循环和二维数组
嵌套循环
二维数组
两者如果对C语言稍有了解的话应该不会陌生,这部分 C++与C并没有大的改变。