1:while循环是没有初始化和更新部分的for循环,它只有测试条件和循环条件
while (test-condition)
body
首先计算圆括号内的测试条件,如果该表达式为true,则执行循环体中的语句,直到测试条件为false为止。
2:编写延时程序
c++中有一个函数有助于完成这样的工作。这个函数名字为clock(),返回程序开始执行后所用的系统时间。此时,出现两个问题,首先,clock()函数返回的时间单位不一定是秒;其次,该函数的返回类型在某些系统上可能是long,在另一些系统上可能是unsigned long或其他类型。
头文件ctime提供了这些问题的解决方案
①首先,定义了一个符号常量--CLOCK_PER_SEC,该常量等于每秒钟包含的系统时间单位数,因此,将系统时间除以这个值可以得到秒数,或者将秒数乘以CLOCK_PER_SEC,可以得到以系统时间单位为单位的时间。
②其次,ctime将clock_t作为返回类型的别名,这意味着可以将变量声明为clock_t类型,编译器将把它转换为long,unsigned long或适合系统的其他类型。
下面程序使用了clock()函数和头文件ctime来创建延迟循环
//延时5秒
#include <iostream>
#include <ctime>//描述clock()函数,clock_t类型
using namespace std;
int main()
{
cout<<"Enter the delay time,in seconds: "<<endl;
float secs;
cin>>secs;//输入延时的秒数
clock_t delay=secs*CLOCKS_PER_SEC;//延时以系统时间单位为单位的时间
cout<<"starting\a\n";
clock_t start=clock();
while (clock()-start<=delay)
;
cout<<"done\a\n";
return 0;
}
输入:5
输出:starting等待5秒之后显示done
3:类型别名
c++为类型建立别名方式有两种。
一种是预处理器:#define aliasName typeName,这样预处理器在编译程序时,用typeName替换所有的aliasName,从而aliasName成为typeName的别名。
二种是使用c++(和c)的关键字typedef来创建别名:typedef typeName aliasName,typedef不会创建新的类型,而只是为已有的类型创建一个新名称。