int main()
{
int i=1;
while(i<10)
{
if(5==i)
continue;
printf("%d",i);
i++;
}
//由于continue的作用为不执行后边语句直接进入一下循环,会导致i一直为五陷入死循环
return 0;
}
while循环中continue的作用,不执行后边的语句直接进入下一循环即跳过本次循环后面的代码直接去判断部分进行下一次循环的判断
int main()
{
//while循环中的break
int i=1;
while(i<10)
{
if(5==i)
break;
printf("%d",i);//1234
i++;
}
//由于continue的作用为不执行后边语句直接进入一下循环,会导致i一直为五陷入死循环
return 0;
}
while循环中break语句作用,永久中止循环
getchar
putchar
int main()
{
int ch=getchar();
printf("%c\n",ch);
putchar(ch);
a=10;
while((ch=getchar())!=EOF)
{
putchar(ch);
}
return 0;
}
当遇到错误:已经执行——————无法写入时,表示程序已经运行,应该停止关闭运行界面
当scanf和getchar一起使用时出现的错误
错误一:因为scanf的缓冲区残留\n导致getchar无法从键盘读取内容只能读到\n
int main()
{
//错误一当scanf和getchar一起使用时
//getchar会因为读取了是残废后面的\n导致无法读取键盘内容
char password[20]={0};
printf("请输入密码");
scanf("%s",password);
printf("请确认密码");
int ret=getchar();//因为直接读取了缓冲区的\n无法获取键盘内容
if('Y'==ret)
printf("正确");
if("N"==ret)
printf("错误");
return 0;
}
错误2:scanf无法读取空格
错误1改良,在scanf后面放一个getchar循环清理scanf残留在缓冲区的字符(可能由于空格导致残留不止为\n)比如adasd adsad会在缓冲区留下空格和后半段字符串加上\n
解决scanf残留的方法
int main()
{
//错误一当scanf和getchar一起使用时
//getchar会因为读取了是残废后面的\n导致无法读取键盘内容
char password[20]={0};
int ch=0;
printf("请输入密码");
scanf("%s",password);
while((ch=getchar())!='\n')
{
}
printf("请确认密码T为正确N为错误\n");
int ret=getchar();//因为直接读取了缓冲区的\n无法获取键盘内容
if('T'==ret){
printf("正确");
}
else if('N'==ret)
{
printf("错误");
}
return 0;
}