while循环用法,C语言中while循环用法
-While循环
1、While循环结构
与for循环不同,While循环没有初始化和更新部分的for循环,它只有测试条件和循环体;
while(test-condition) body
2、类型别名
使用typedef来定义类型别名
格式为:
typedef typeName aliasName;
如果要将aliasName作为某种类型的别名,可以声明aliasName,,然后在声明的前面加上关键字typedef。
例如,要让byte_pointer成为char指针的别
名,可将byte_pointer声明为char指针,然后在前面加上typedef:
typedef char * byte_pointer
这样在定义指针char指针变量时,可以直接使用*byte_pointer;
*byte_pointer pa:即声明一个char类型的pa指针。
展示一个例子,利用类型别名和while循环进行延时:
如下程序:
#include<iostream>#include<ctime> int main(void){ using namespace std; cout << "Enter the delay time, input seconds: "; float secs; cin >> secs; clock_t delay =secs*CLOCKS_PER_SEC; clock_t start = clock(); //clock_t即为int类型的类型别名,名称一目了然,知道为指代时钟参数 while(clock()-start <delay) //当未达到计时所对应的数字时,处于while循环中,不执行任何操作 { } cout << "Loop exit!"; //当计数达到计时所对应的数字,退出循环,打印循环退出提示。 return 0; }
输出结果,用户输入延时delay为5,计算机等待5s后打印"Loop exit":
此处clock_t就是一个int类型的别名。
ps:类型别名的作用在于,通过定义一个自定义的别名,能够让用户更直观了解变量的定义、提高代码移植性;这种使用方式在单片机代码中非常常见。
3、哨兵字符
当程序使用循环来读取用户通过键盘的输入时,必须知道何时停止读取,可以通过某一个特殊字符——哨兵字符;将其作为停止标记。
如下程序:
#include<iostream> int main(void){ using namespace std; char ch; int count =0; cout << "Enter some characters ( enter # exit ):" << endl; cin.get(ch);//忽略空白字符 while(ch !='#') { cout << ch; count ++; cin.get(ch); } cout << endl; cout << "you input Number of valid characters is : " << count << endl; return 0;}
设置字符‘#’为哨兵字符,程序请求用户输入,当用户输入#时停止读取,退出while循环,并输出循环处理的总字符个数。
ps:由于cin在对输入读取时会跳过空白字符,所以需要使用cin.get()类,将用户输入的所有字符进行读取。
程序运行结果:
当输入字符为“li zheng 3 2 1#end”时,哨兵字符后的end将不会作为有效字符输出,且处理的有效字符个数为14,包括了空白字符。
本文地址:百科问答频道 https://www.neebe.cn/wenda/942832.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!