学习C时候 看不懂 这段话,高手请进

来源:百度知道 编辑:UC知道 时间:2024/05/11 12:21:39
讲while循环的
**************************************************
原话:
(二)、while循环 它的一般形式为:
while(条件)
语句;
while循环表示当条件为真时,便执行语句。直到条件为假才结束循环。并继续执行循环程序外的后续语句。
例如:
#include "stdio.h"
main()
{
char c;
c='\0'; /*初始化c*/
while(c!='\n') /*回车结束循环*/
c=getche(); /*带回显的从键盘接收字符*/
}

上例中,while循环是以检查c是否为回车符开始,因其事先被初始化为空,所以条件为真,进入循环等待键盘输入字符;一旦输入回车,则c='\n',条件为假,循环便告结束。与for循环一样,while循环总是在循环的头部检验条件,这就意味着循环可能什么也不执行就退出。

**********************************************************

首先我运行上面的代码,用TC2.0编译 可以输入字母,按回车后,返回第一个字符输入位置,但是无法跳回编译界面,输入回车也不行!如果在“while(c!='\n')” 后面加上“;”就什么都输入不了了,询问一下原因,而且这段话也看不明白c=getche(); 求解释!

就要从这边开始讲起了
while(c!='\n') /*回车结束循环*/
c=getche(); /*带回显的从键盘接收字符*/ 应该改成c=getchar();
getchar();需要输入回车比如说你要输入 A,你就要键入 A<回车键>
所以要离开这个循环你需要键入<回车键><回车键>

而如果在“while(c!='\n')” 后面加上“;”
这表示while(c!='\n')后就结束,也就是说c要等于'\n'才会结束,可是如果c的值不能被更改,就不用离开这个循环了。

把c=getche(); /*带回显的从键盘接收字符*/

改成c=getchar();

就ok了

据我猜想 在getche()接收的回车的ASCII码也许和getchar()不一样 所以无法接受到命令 改用getchar()就好了
#include "stdio.h"
main()
{
char c;
c='\0'; /*初始化c*/
while(c!='\n') /*回车结束循环*/
c=getchar(); /*带回显的从键盘接收字符*/
}