c语言内循环,C语言循环控制语句

C语言循环控制语句是一个基于C语言的编程语句,该语句主要有while循环语句、do-while循环语句和for循环语句来实现循环结构。

中文名

C语言循环控制语句

类    别

while循环语句,do-while语句等

目    地

实现循环结构属    于

计算机领域

归    类

编程语句

基    础

C语言

C语言循环控制语句基本信息

编辑

在C语言程序中,一共有三种程序结构:顺序结构、选择结构(分支结构)、循环结构;顺序结构,从头到尾一句接着一句的执行下来,直到执行完最后一句;选择结构,到某个节点后,会根据一次判断的结果来决定之后向哪一个分支方向执行; 循环结构,循环结构有一个循环体,循环体里是一段代码。对于循环结构来说,关键在于根据判断的结果,来决定循环体执行多少次。C语言循环控制语句是一个基于C语言的编程语句,该语句主要有while循环语句、do-while循环语句和for循环语句来实现循环结构。

C语言循环控制语句循环语句

编辑

一般形式如下:

while(表达式)

语句;

其中执行过程如下:

8e6747ab7062f68ccb4604548ed82854.png

while语句

(1)计算while后面括号里表达式的值,若其结果非0,则转入(2),否则转(3)

(2)执行循环体,转(1)

(3)退出循环,执行循环体下面的语句。

由于是先执行判断后执行循环体,所以循环体可能一次都不执行。

循环体可以为空语句“;”。

C语言循环控制语句do-while语句

编辑

一般形式如下:

do

语句;

while(表达式);

(1)执行循环体,转(2)

25fdf4acd056085e53864051db9ed7d5.png

do...while语句

(2)计算while后面括号里表达式的值,若其结果非0,则转入(1),否则转(3)

(3)退出循环,执行循环体下面的语句。

注意:do……while语句最后的分号(;)不可少,否则提示出错。循环体至少执行一次。[1]

C语言循环控制语句for语句

编辑

for语句是循环控制结构中使用最广泛的一种循环控制语句,特别适合已知循环次数的情况。

一般形式如下:

for ( [表达式 1]; [表达式 2 ]; [表达式3] )

语句

其中:

表达式1:一般为赋值表达式,给控制变量赋初值;

6b20daeb96664483a6ac954731f69251.png

for语句

表达式2:关系表达式或逻辑表达式,循环控制条件;

表达式3:一般为赋值表达式,给控制变量增量或减量;

语句:循环体,当有多条语句时,必须使用复合语句。

其执行过程如下:首先计算表达式1,然后计算表达式 2。若表达式2为真,则执行循环体;否则,退出 for循环,执行for循环后的语句。如果执行了循环体,则循环体每执行一次,都计算表达式3,然后重新计算表达式2,依此循环,直至表达式 2的值为假,退出循环。

for语句的三个表达式都是可以省略的,但分号“;”绝对不能省略。for语句有以下几种格式:

(1)for(; ;) 语句;

(2)for(;表达式2;表达式3 ) 语句;

(3)for(表达式1;表达式2;) 语句;

(4)for(i=1,j = n; i < j; i ++,j - - ) 语句;

C语言循环控制语句三种语句比较

编辑

同一个问题,往往既可以用 while语句解决,也可以用 do-while或者for语句来解决,但在实际应用中,应根据具体情况来选用不同的循环语句。选用的一般原则是:

(1) 如果循环次数在执行循环体之前就已确定,一般用 for语句。如果循环次数是由循环体的执行情况确定的,一般用 while语句或者do- while语句。

(2) 当循环体至少执行一次时,用 do-while语句,反之,如果循环体可能一次也不执行,则选用while语句。

C++/C循环语句中,for语句使用频率最高,while语句其次,do语句很少用。

三种循环语句for、while、do-while可以互相嵌套自由组合。但要注意的是,各循环必须完整,相互之间绝不允许交叉。

C语言循环控制语句其他循环语句

编辑

多重循环结构

在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨越循环层的次数。

一个循环体内又包含另一个完整的循环结构

三种循环可互相嵌套,层数不限

外层循环可包含两个以上内循环,但不能相互交叉

C语言循环控制语句c循环举例

编辑

这里使用c语言中的for循环。添加了九九乘法表查询、每天存钱问题、猴子吃桃问题、百钱买百鸡。

#include

void main()

{

float x,y,z,a,b,c,d,i,n,sum;int m;char yn;

system ("graftable 936");

yn='y';

while(yn=='y' )

{

clrscr ();

printf(" 欢迎使用 \n");

printf("请按提示操作,谢谢!\n");

printf("九九乘法表查询请按1\n");

printf("每天存钱问题请按2\n");

printf("猴子吃桃问题请按3\n");

printf("一分数序列课本请按4\n");

printf("百钱买百鸡请按5\n");

m=getch();

switch(m)

{case '1':

{

for (a=1;a<=9;a++)

{for (b=1;b<=a;b++)

printf("%.0f*%.0f=%2.0f\t",a,b,a*b);

printf("\n");

}

break;}

case '2':

{

a=1,sum=0;

for(i=1;i<31;i++)

{sum=sum+a;

printf("第%2.0f天收益%20.0f分钱\t",i,sum);

a=2*a;

}

break;}

case '3':

{

b=1;

for(i=1;i<10;i++)

b=2*(b+1);

printf("猴子吃桃问题:");

printf("第一天摘桃子的个数为%.0f个\n",b);

break;}

case '4':

{ a=2,b=1, sum=0;

for(i=1;i<=20;i++)

{ n=(1.0*a)/b; c=a; a=a+b; b=c; sum=sum+n; }

printf("2/1,3/2,5/3...最后结果%f\n",sum);

break;}

case '5':

{

for(a=1;a<=20;a++)

for(b=1;b<=33;b++)

for(c=3;c<=99;c=c+3)

if((5*a+3*b+c/3==100)&&(a+b+c==100))

printf("公鸡=%.0f,母鸡=%.0f,小鸡=%.0f\n",a,b,c);

break;}

}

fflush(stdin);

printf("请选择继续y或者离开n\n");

yn=getch();

}

}

参考资料

1.

C语言do-while语句的用法

.C语言中文网[引用日期2015-11-04]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/432782.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

同步,异步,多线程,你怎么看?

同步&#xff0c;异步&#xff0c;多线程&#xff0c;你怎么看&#xff1f; 原文:同步&#xff0c;异步&#xff0c;多线程&#xff0c;你怎么看&#xff1f;[原创]讲解同步与异步的帖子多如牛毛&#xff0c;个人的理解&#xff0c;简单地说同步就是串行&#xff0c;异步就是并…

openssl-1.0.0b - libssl 移植到ARM Linux

开发环境&#xff1a; ubuntu 10.04 arm-linux-gcc version 4.4.1 目标环境 友善之臂mini6410 linux-2.6.36 移植步骤 1&#xff0e;至官网下载最新的openssl&#xff0c;解压缩 2&#xff0e;cd进入openssl-1.0.0b目录 3&#xff0e;执行./Confiugre linux-elf-arm&#xff0c…

C语言的putpiel函数,C语言graphics.h函数介绍

可编辑(一) 像素函数56. putpiel() 画像素点函数57. getpixel()返回像素色函数(二) 直线和线型函数58. line() 画线函数59. lineto() 画线函数60. linerel() 相对画线函数61. setlinestyle() 设置线型函数62. getlinesettings() 获取线型设置函数63. setwritemode() 设置画线模…

ARM-Linux下交叉编译opessl-1.0.0

本次任务是要完成嵌入式Linux下对openssl程序的支持。 我的开发环境&#xff1a;ARM9开发板 和 嵌入式Linux操作系统。装有Linux系统&#xff08;我的是ubuntu9.04&#xff09;的PC机一台。串口和串口连接线。串口调试软件&#xff1a;minicom。交叉编译工具:arm-unknown-l…

modf函数C语言,C / C ++中的modf()

该函数modf()用于将传递的参数拆分为整数和小数。在“ math.h”头文件中声明该变量以进行数学计算。它返回传递的参数的分数值。这是modf()C语言的语法&#xff0c;double modf(double value, double *integral_pointer);这里&#xff0c;值-分为整数和分数的值。积分指针-分割…

codeforces #236 div2 简洁题解

A:A. Nutstime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou have a nuts and lots of boxes. The boxes have a wonderful feature: if you put x (x ≥ 0)divisors (the spacial bars that can divide a box) to…

南京大学c语言试卷,2007年4月南京大学C语言期中试题.doc

2007年4月南京大学C语言期中试题南京大学《C语言程序设计》期中试卷(2006年4月15日)系科 学号______________姓名_____________成绩_______________注意事项&#xff1a;1、答案均写在答题纸上&#xff0c;写在卷面上无效;2、答题结束后将试卷及答题纸全部交给监考教师;3、闭卷…

web通信 长连接、长轮询

http://www.cnblogs.com/hoojo/p/longPolling_comet_jquery_iframe_ajax.html转载于:https://www.cnblogs.com/kszit/p/3605340.html

V210 SPI驱动分析

对于总线设备驱动&#xff0c;是需要分别创建设备和驱动两个结构体&#xff0c;然后根据name&#xff0c;互相匹配&#xff0c;匹配成功后&#xff0c;调用 驱动的probe函数&#xff0c;然后创建设备文件&#xff0c;实现驱动的业务逻辑。 因此&#xff0c;我们就以设备和驱动…

android 有值代码,Android:如何在代码中获取“listPreferredItemHeight”属性的值?

这样做&#xff1a;TypedValue value new TypedValue();((Activity)context).getTheme().resolveAttribute(android.R.attr.listPreferredItemHeight, value, true);编辑&#xff1a;由于尚未正确初始化DisplayMetrics实例&#xff0c;因此您将获得零值。它需要一个参考框架(显…

android 多个按钮响应,处理Android Recyclerview中的多个按钮单击并将响应存储在Array或ArrayList中...

我正在设计在线测验App。我设计了PlayQuiz.java文件如下&#xff1a;public class PlayQuiz extends AppCompatActivity {private RecyclerView recyclerView;DataBaseHelper database;private List quizList;private QuizAdapter adapter;Overrideprotected void onCreate(Bun…

密码学中的“盐值 Salt”

盐&#xff08;Salt&#xff09; 在密码学中&#xff0c;是指通过在密码任意固定位置插入特定的字符串&#xff0c;让散列后的结果和使用原始密码的散列结果不相符&#xff0c;这种过程称之为“加盐”。 以上这句话是维基百科上对于 Salt 的定义&#xff0c;但是仅凭这句话还是…

android 主线程调用,Android 主线程和线程之间相互发送消息

通过分析Activity源码&#xff0c;我们知道每个Activity都有一个Looper&#xff0c;所以主线程在接收Message是不需要调用Looper.prepare()和Looper.loop()&#xff0c;但是线程是不带Looper的&#xff0c;当线程要接收来自主线程的消息是就需要调用Looper.prepare()和Looper.l…

10 个十分难得的 javascript 开发经验

Javascript 的很多扩展的特性是的它变得更加的犀利&#xff0c; 同时也给予程序员机会创建更漂亮并且更让用户喜欢的网站。 尽管很多的开发人员都乐于颂扬 javascript&#xff0c;但是仍旧有人看到它的阴暗面。 使用很多 javascript 代码的 web 页面会加载很慢&#xff0c;过多…

简单的UTF8编码生成

用记事本建一个文件&#xff0c;用editplus打开&#xff0c;并转成UTF8格式 然后写中文字符 然后用ultraEdit打开&#xff0c;切换到16机制模式即可

android unzip file,Unzip File in Android Assets

可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效&#xff0c;请关闭广告屏蔽插件后再试):问题:I put a zip file in the android assets. How do i extract the file in the android internal storage? I know how to get the file, but i dont know how t…

Eclipse安装ADT失败解决办法

Eclipse的版本是3.5.2&#xff0c;配置Android的开发环境时遇到问题…… 按照Android官方文档一步步安装&#xff0c;到了安装Eclipse的ADT插件时&#xff0c;提示“requires org.eclipse.gef 0.0.0 but it could not be found” 缺少GEF&#xff0c;Eclipses Graphic Editing …

DM3730 LCD控制器驱动框架

一般来说&#xff0c;linux的LCD控制器驱动是分两个层次 1) fbmem.c 一个linux内核通用的LCD控制器层&#xff0c;没有任何硬件信息&#xff0c;而且不创建设备文件。 它提供的最重要的接口函数是register_framebuffer 2) 特定芯片的LCD控制器硬件驱动代码&#xff0c;他来调…

html仿qq最小化怎么实现,JS仿QQ好友列表展开、收缩功能(第一篇)

JS仿QQ好友列表展开、收缩功能(第一篇)发布时间&#xff1a;2020-10-17 14:20:03来源&#xff1a;脚本之家阅读&#xff1a;96作者&#xff1a;erdouzhang效果图如下所示&#xff1a;html:我的好友张三李四...企业好友小明小红...黑名单哈哈...css&#xff1a;ul,h3 {padding: …

Visual Studio 选择相同变量高亮

前段时间一直在使用matlab&#xff0c;今天需要使用vs2008&#xff0c;而用惯了matlab&#xff0c;习惯了其中一项选中变量高亮的设置&#xff0c;突然回来使用VS&#xff0c;感到各种不适应&#xff0c;顿时想到了一个词&#xff1a;矫情 呵呵&#xff0c;于是在网上找各种插件…