-
while循环中存在printf函数时。
如以下代码:
#include <stdio.h>
int main()
{
char ch;
int count = 0;
while ((ch = getchar ()) != '|')
{
count++;
printf("Count is :%d.The character is %c.\n",
count, ch);
}
return 0;
}
这个文件目的是输出输入字符的个数。
下面我们编译,执行这个文件:
输入:abc【回车】
下面是输出结果:
count is :1.The character is a.
count is :2.The character is b.
count is :3.The character is c.
count is :4.The character is [空格]
.
_(这个时候光标挪到下一行等到输入,循环还在继续)
![图片描述][1]
可见,在含printf的while循环中,如果输入了【回车】(回车不是结束循环的标志)时候,程序会读取输入的abc【回车】接着执行循环里的printf函数。此时循环还未结束,printf输出后仍等待输入。
我本以为程序会这样执行:abc【回车】另起一行继续等我们输入,直到输入结束循环的符号,然后再依次执行printf函数。
- while循环中没有printf函数时。
如以下代码:#include <stdio.h>
int main()
{
char ch;
int count = 0;
while ((ch = getchar ()) != '|')
{
count++;
}
printf("Count is :%d.\n", count);
return 0;
}
下面我们编译,执行这个文件:
输入:abc【回车】此时屏幕上没有任何输出结果,而是并另起一行等带我们继续输入,直到我们输入结束循环符号:‘|’
![图片描述][2]
重新输入:
abc【回车】
|
后程序直接结束,如下:
![图片描述][3]
[1]: http://img.mukewang.com/5959a9080001181f02810159.png
[2]: http://img.mukewang.com/5959a88800016ed303700145.png
[3]: http://img.mukewang.com/5959a9f90001606003050118.png