C++学习第十五天----while循环和do--whiel循环

1.while循环

        要打印字符的ASCII码,必须通过强制类型转换将字符转换为整型。这样cout将把值打印成整数,而不是将它解释为字符编码。

        不同于c-风格字符串,string对象不使用空字符来标记字符串末尾;

2.for循环和while循环的区别

        for循环的3个表达式都可以为空表达式,但是2个分号必须保留,下面代码是一个死循环和while(1)无异;for循环省略第二个表达式,结果默认为true;

for(;;)
{

}

        for循环中,可以初始化声明一个局部变量,while循环中不可以;

        如果循环体中有continue语句,结果会有所差异;

        在不同的情况下要合理使用for和while循环;

int i = 0;
while (names[i] != '\0')
{
		cout<< names[i] << ": " << (int)names[i] << endl;
		i++; 
}


int i = 0;
while (names[i] != '\0');
{
		cout<< names[i] << ": " << (int)names[i] << endl;
		i++; 
}

        注意上述两段代码的区别,分号的作用是结束语句,假如在while()后面加一个分号,那么该while循环的循环体就是空语句,不再是花括号里面的内容;

3.延时循环

        下面两种方式都可以用于延时;

long wait = 0;
while(wait < 1000)
    wait++;

int a;
for(a = 0; a > 100; a ++) {}

        ANSI C和C++库中有一个函数有助于完成这样的工作,这个函数名为clock(),返回程序开始执行后所用的系统时间;

        注:返回的时间单位不一定是秒,返回数据类型也不是一定的;

        头文件ctime(较早的实现为time.h),它定义了一个符号常量----CLOCKS_PER_SEC,该常量等于每秒钟包含的系统时间单位数。

        ctime将clock_t作为clock()返回类型的别名。

程序清单5.14; · ccddcb1 · Kite/C和C++ - Gitee.com

下图为运行结果,还是很准确的,2.246/1000 =2.2s,2.2+10=12.2s,结果显示是12.3s。

C++学习第十五天----while循环和do--whiel循环_第1张图片

4.类型别名

         建立别名有两种方式,第一种是使用预处理器; 

//文件中的所有BYTE都将用char替换,这是预处理
#define BYTE char

//将char重命名为byte,这是重命名
typedef char byte;

5.do while 循环

        它是一种出口条件循环,至少执行一次循环体;

do
{
    循环体;
    ……
}
while(条件)

6.循环和文本输入

        哨兵字符----将其作为停止标记;

程序清单5.16; · 8ee03ef · Kite/C和C++ - Gitee.com

        为什么程序在输出时省略了空格?原因在cin,读取char值时,与读取其它基本类型一样,cin将忽略空格和换行符。因此输入中的空格没有被回显,也没有被包括在计数内。

        只有在用户按下回车键后,输入的内容才会发送给程序,然后程序在遇到#字符后结束对输入的处理。

你可能感兴趣的:(c++,学习,开发语言)