一、for循环
1.在引入bool类型之前,关系表达式为ture;被判定为1;如果为false,被判定为0。
2.函数cout.setf():设置了一个标记。该标记命令cout显示ture和false,而不是1和0。
函数参数为cout.setf(ios_base::boolalpha),但在老式C++可能要求使用ios:boolalpha。
3。不可以把for循环赋给变量**
1LL:缩写——long long
前缀效率更高!!!
4.复合语句:在语句块定义一个新的变量,则仅当程序执行在该语句块中的语句时,该变量存在。执行完该语句块后,变量将被释放。变量只在语句块中有用
5.在所有运算符中,逗号的优先级别最低。
eg: cats = (17,67); //cats值为67
6.C-风格字符串的比较
如果word为数组名:
word = “mate”;
注意:数组名是数组的地址。用括号括起来的字符串常量也是其地址。由于C++将C-风格字符串视为地址,则用关系运算符来比较它们,无法得到满意的结果。
因此,应使用C-风格字符串库中的strcmp()函数来进行比较。该函数接收两个字符串地址作为参数。意味着参数可以为指针、字符串常量、字符数组名。如果两个字符串相同,该函数返回“0”;如果第一个字符串按字母排在第二个字符串之前,则strcmp()返回一个负数值;如果第一个字符串按顺序排在第二个字符串之后,则strcmp()返回一个正数值。
7.string类字符串的比较:可以使用关系运算符。因为类函数重载(重新定义)了这些运算符。
二。while循环
1.编写延时循环:延时循环 clock()函数,返回程序开始执行所用的系统时间.
*注意:返回时间单位不一定是秒其次返回类型在某些系统上可能是long,在另一些系统则可能为unsigned long或其他类型。
clock()函数头文件 ctime : 1.定义一个符号常量——CLOCKS_PER_SEC,该常量为每秒包含的系统时间。
2.ctime将 clock_t 作为clock()返回类型的别名。
//waiting.cpp-----using clock() in a time-delay loop
#include<iostream>
#include<ctime> //describes clock() function, clock_t type
using namespace std;
int main()
{
cout<<"please input the delay time, in seconds: "<<endl;
float secs;
cin>>secs;
clock_t delay=secs * CLOCKS_PER_SEC; //得到以系统时间为单位的时间, CLOCKS_PER_SEC---符号常量。
cout<<"starting\a\n";
clock_t start=clock(); //返回系统时间。
while(clock()-start<delay)
;
return 0;
2.类型别名
C++类型别名建立有两种方式。
一种为是用预处理器:
#define BYTE char
二种方法使用C++(和C)的关键字typedef来创建别名。
通用格式:typedef typeName aliasName;
typedef char byte;
指针的别名 :typedef char * byte_pointer; //pointer to char type
也可以使用#define:
#define float_pointer float *
float_pointer pa,pb;
但预处理器置换该声明转换值为这样:
float *pa,pb; //pa a pointer to float,pb just a float
注意:typedef不会创建新类型,而只是为已有的类型建立一个新名称,word为int的别名,则cout把word类型值视为int类型!!!
三。do while循环
四.基于范围的for循环(C++11)
基于范围(rang-based)的for循环,简化了一种常见的循环任务:对数组(或容器类,如vector和array)每个元素执行相同的操作。举例如下:
double prices[5] = {4.99,12.56,14.23,13.56,56.23};
for(double x : prices)
cout<< x <
#include<iostream>
using namespace std;
int main()
{
char ch;
int count=0;
cin.get(ch);
while(cin.fail()==false) //test for EOF
{
cout<<ch;
++count;
cin.get(ch);
}
cout<<count<<" character read!"<<endl;
return 0;
}
3>EOF结束输入
cin.clear()方法可能清除EOF标记,使输入继续进行。
在以后介绍的!运算符可以将ture切换为false,也可反向切换。
则:
while(cin.fail()==false)可改为 while(!cin.fail())
由于cin.get(char)返回一个cin对象。然而istream类可将istream对象(如cin)转换为bool值的函数;当出现需要bool值的地方(如while循环中),该函数将被调用。则可将上述while测试改为:
while(cin)