C语言while循环语句用法,c语言while循环例子 c.编程.net,C语言示例讲解while循环语句的用法

C语言while循环语句用法,c语言while循环例子 c.编程.net,C语言示例讲解while循环语句的用法

很多实际问题中有很多有规律的重复运算,所以程序中需要重复一些语句。一组重复执行的语句称为循环体。C语言中的while语句可以是单个语句,也可以是语句块,其条件可以是任意表达式,true是任意非零值。当条件为真时,循环迭代。

目录

1、while语句结构2、代码示例在学习和复习这些知识之前,我们已经掌握了if语句的结构和用法。

如果(条件)

声明;

满足条件时,if结构中的语句只执行一次;如果条件不满足,就不执行。但是,在生活中,往往需要多次完成一件事。这时候就需要使用while语句来实现循环。

1、while语句结构

While(表情)

循环语句;

示例:用圆形结构打印1-10

#包含stdio.h

int main()

{

int I=0;

while(i 10)

{

我;

printf('%d ',I);

}

返回0;

}

1 2 3 4 5 6 7 8 9 10

让我们分别测试一下在代码中添加continue和break的结果。

在while循环中,break用于永久终止循环。

int main()

{

int I=1;//初始化

While (i=10) //判断部分

{

如果(i==5)

打破;

printf('%d ',I);

我;//循环变量的调整部分

}

返回0;

}

运行结果是:

1 2 3 4

改break继续,发现运行结果是:

输出4后,光标一直闪烁,因为在while循环中,continue的作用是跳过这个循环中continue之后的代码(从而跳过printf('%d ',I);我;这两条语句),直接程序再次到判断部分,看是否进行下一个循环。

2、代码示例

示例1:

看看下面的代码是什么意思。

int main()

{

int ch=0;

while ((ch=getchar())!=EOF)

putchar(ch);

返回0;

}

运行结果如下:

你输入的任何字母都会被输出。要退出程序,请使用快捷键“ctrl z”。

a

a

A

A

Z

Getchar这意味着如果读取成功,它将返回ASCII码值;如果读取失败,将返回EOF(文件结束),这是文件结束标记。

测试getchar的功能。

int main()

{

int ch=getchar();

printf('%c\n ',ch);

//putchar(ch);//此语句与前一个语句的含义相同

返回0;

}

运行测试代码,在打印结果的窗口中,键入一个A字符,回车,A字符就打印出来了。(putchar表示输出一个字符)

getchar和keyboard之间有一个缓冲区。键入字符“A”相当于将“A\n”放入缓冲区。

示例2:

假设你输入一个字符作为密码,将密码存储在字符串passwd中,然后会弹出“请确认密码”的提示。如果确认密码正确,输入“Y”,输出“确认成功”;否则,键入“n”并输出“确认失败”。编写的代码如下:

int main()

{

char passwd[20]={ 0 };

Printf('请输入密码:');

scanf('%s ',passwd);//假设输入的密码是2022

//这里passwd不取地址的原因是passwd是一个数组,数组的数组名本身就是一个地址,所以

//此处没有添加到passwd的地址提取字符

Printf('请确认密码(Y/N):');

int ch=getchar();

if (ch=='Y ')

{

Printf('确认成功\ n ');

}

其他

{

Printf('确认失败\ n ');

}

返回0;

}

运行这段代码的结果如下:

请输入密码:2022。

请确认密码(是/否):确认失败。

显然,这段代码有错误。在输入Y/N之前,系统会提示您确认失败。这是为什么呢?因为我们在键盘上输入“2022”之后,还会输入一个回车。此时,“2022\n”被放入缓冲区。

Scanf和getchar是输入函数。他们不是直接从键盘获取数据,而是从中间缓冲区获取数据。如果缓冲区中没有数据,它将等待来自键盘的一点信息输入到缓冲区中。Scanf只会从缓冲区中的“2022\n”中取“2022”,“\n”保留在缓冲区中;Getchar在读取时没有等待就直接从缓冲区取\n \了,所以我们在输入y/n之前打印了“确认失败”。

如何修复程序?

执行scanf后将缓冲区中的“\n”拿走,即清理缓冲区,这样getchar函数将不得不等待输入并正确运行。

代码如下:

int main()

{

char passwd[20]={ 0 };

Printf('请输入密码:');

scanf('%s ',passwd);//假设输入的密码是2022

Printf('请确认密码(Y/N):');

//清理缓冲区

getchar();//句柄' \n '

int ch=getchar();

if (ch=='Y ')

{

Printf('确认成功\ n ');

}

其他

{

Printf('确认失败\ n ');

}

返回0;

}

运行结果是:

请输入密码:2022。

请确认密码(是/否):是

确认成功

这对于连续的密码输入是正确的,但是对于不连续的(中间有空格)呢?

例如,密码为“2022 abc”,执行结果如下:

请输入密码:2022 abc

请确认密码(是/否):确认失败。

可见节目还是有瑕疵的。那么如何应对呢?有必要清理缓冲区中的所有字符。此时,只有一个getchar函数无法摆脱空格和\n,所以可以使用while循环使其一直读取,直到读取完所有\n。

int main()

{

char passwd[20]={ 0 };

Printf('请输入密码:');

scanf('%s ',passwd);//假设输入的密码是2022

Printf('请确认密码(Y/N):');

清洁缓冲器。

//getchar();//句柄' \n '

//清除缓冲区中的多个字符

int tmp=0;

while ((tmp=getchar())!='\n ')

{

}

int ch=getchar();

if (ch=='Y ')

{

Printf('确认成功\ n ');

}

其他

{

Printf('确认失败\ n ');

}

返回0;

}

请输入密码:2022 abc

请确认密码(是/否):是

确认成功

示例3:

//只打印数字

int main()

{

int ch

while ((ch=getchar())!=EOF)

{

if (ch '0' || ch '9 ')

继续;

putchar(ch);

}

返回0;

}

根据ASCII码值可以知道这个码的意思:如果不是数字,继续。执行continue会跳过语句putchar(ch),所以这段代码最后只会打印输入的数字。如果要终止操作,只需键入“ctrl z”。代码运行如下:

一个

一个

Z

这就是这篇关于解释while循环语句用法的C语言示例的文章。更多相关的C语言while循环内容,请搜索我们之前的文章或者继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • C语言while循环语句用法,c语言中while循环
  • python中while循环的基本语法形式,while循环语句用法python
  • python里的while,Pythonwhile循环语句
  • python使用while循环实现计算n的阶乘,while语句算阶乘
  • while循环python用法,python while循环语句用法
  • matlab实现while循环,while循环语句用法Python
  • python如何使用while循环,python中while循环的基本语法形式
  • python while循环语句,python while循环语句用法
  • for循环和while循环有何区别,举例说明for循环语句和while循环语句的区别
  • python中while循环只能用来实现无限循环,python的循环语句while
  • do while循环语句执行过程,python中do while循环
  • while循环语句求和用法,python循环语句while求和1-100
  • while循环1加到100的和MATLAB,while循环1加到100的和c语言
  • python两种循环语句,python3 while循环语句
  • 使用while循环实现计算n的阶乘,利用while循环结构求n的阶乘
  • 留言与评论(共有 条评论)
       
    验证码: