热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:控制语句

本文由编程笔记#小编为大家整理,主要介绍了控制语句相关的知识,希望对你有一定的参考价值。程序的三种基本结构
本文由编程笔记#小编为大家整理,主要介绍了控制语句相关的知识,希望对你有一定的参考价值。



程序的三种基本结构


技术分享图片技术分享图片技术分享图片

技术分享图片


复合语句

将若干个C语句使用花括号{ }包括起来形成复合语句。花括号内可以包含任何C语句,

其一般形式为:

{

语句1;

语句2;

……

语句n;

}


1.if条件分支语句

if语句有三种语法形式,构成三种分支结构。

1)流程(单选控制结构)

语句形式如下:

if (表达式)语句;

其中,表达式可以是任何种类的表达式。

执行过程中:若表达式的值为逻辑真(非0值),则执行if的内嵌语句;若表达式的逻辑值为假(0值),则跳过该语句,执行if语句的下一条语句。

单选控制结构只有1条语句可供选择:或者执行,或者不执行。

如:高考分数大于650分,则选择清华大学。


if (scores > 650)
University
=Tsinghua University;


2)if…else流程(二选一控制结构)

语句形式如下:

if (表达式)

   语句1;

else

   语句2;

代表两路分支结构,即二选一控制结构。

执行过程:如果表达式的值为真,则执行语句1;否则,执行语句2.

如,求b的绝对值

if (b>=0)

   a=b;

   else

   a=-b;

如果语句1、语句2不需要采用复合语句时,if语句可以用条件运算符?:简化。

如,求b的绝对值可以这么写

a=(b>=0)?b:-b;


3)else…if流程(多选一控制结构)

语句形式如下:

if ( 表达式1)        语句1;

else if(表达式2)  语句2;

else if(表达式3)  语句3;

……

else if(表达式n)    语句n;

else                      语句n+1;

根据条件的判定,进行多路分支选择,即多选一控制结构。

执行过程:依次计算各表达式的值;若某个表达式的值为真,则执行相应的语句,然后执行if之后的后续语句。

if语句中的最后一条else语句用来处理所有条件均不成立的情况,即当所有表达式的值均为假时,执行最后一个else后的语句。如果所有条件均不成立时,不需要完成任何操作,则可省略else。


4)if语句嵌套

C语言允许if语句嵌套,if的内嵌语句可以是另一条三种形式之一的if语句。

如:在a>=b的条件下,判断a,c中的最大值:


if (a>=b)
if(a>=c)
printf(
"max=%d
",a);
else
printf(
"max=%d
",c);

在if流程中嵌套了if…else流程。

使用if语句嵌套时,应注意if与else的配套关系,以免发生二义性。

如:用if语句完成一个分段函数计算:

 

















 -a    x<0
y=0     x=0
 a     x>0

如果程序段为:


y=-a;
if(x!=0)
if(x>0)
y
=a;
else y=0;

执行结果就时错误的,问题出在else和if的配对。C语言采用的是最邻近配对原则,else总是与它最近的if配对,尽管形式上写成了else与第一个if配对,但语法上else是与第二个if配对的,所以出现错误,这种情况出现,可采用复合语句的方法来解决。

程序段改写为:


y=-a;
if(x!=0){
if(x>0)
y
=0;
}
else
y
=0;

采用复合语句,从语法上规定了程序段第3~5行已是第一个if语句的一条完整的内嵌语句,是一个if流程,因此不能再与else子句配对,从而使得else与第一个if语句配对。


4.switch多路开关语句


一般形式为:

switch(表达式)
{
case常量1:语句1;
break
case常量2:语句2;
break
……
case常量n:语句n;
break
default:语句n+1;
}

      其中,switch,case和default为关键字。switch后的表达式可以是整型或字符型表达式,但不能是关系表达式或逻辑表达式。常量1~n可以是整数、字符或常量 表达式。


 

执行过程:计算swicth语句中的表达式的值,再依次与case后面的1~n个常量比较,当表达式的值与某个case后的常量相等时,则执行该case对应的语句;break语句可以跳出switch结构。

如果n个常量都不等于switch中的表达式的值,则执行default后的语句。

每个case后的语句可以是单条语句或空语句,也可以是多条语句构成的一个程序段。

break语句的作用是结束switch语句,使流程跳出switch结构。缺少break语句不能实现多路分支。



5.for循环

一般形式:

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

       循环体

表达式1——一般为赋值表达式,为循环控制变量赋初值

 表达式2——一般为关系表达式或逻辑表达式,为控制循环结束的条件。

表达式3——一般为赋值表达式,对循环控制变量进行修改(增量或减量)

循环体——可以是单语句,也可以是复合语句


6.while循环和do…while循环


1)while语句

while语句

一般形式:

while(表达式)

           循环体

2)do…while语句

一般形式为:

do循环体while(表达式);


7.循环嵌套

 


1for(…)
{

while(…)
{…}
……
}
2do
{

for(…)
{…}

}
while
3)while(…)
{

do{

}
while();

}
4for(…)
{

for(…)
{…}

}

 

 

 




 8.break,continue,goto语句

1)break语句

可用于switch语句中,使某个case子句执行完后,跳出switch结构,实现多路分支。

在for、while和do…while循环结构中,当需要循环在一定条件下提前终止时,break语句可以跳转出循环结构。

break语句提供了通过中间测试使循环结束的中间出口方法。

2)continue语句

continue语句只能用于循环结构,continue语句结束本次循环,直接进入本循环结构的下一次循环操作

3)goto语句

一般形式为

goto标号;

标号:语句

标号使用标识符表达

标号代表的语句可以是一个空语句

goto语句只能从循环嵌套内层转向外层,反之则不行。

 



推荐阅读
  • 本文小编为大家详细介绍“Java中的逻辑结构模式有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java中的逻辑结构模式有哪些”文章能帮 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • switch语句的一些用法及注意事项
    本文介绍了使用switch语句时的一些用法和注意事项,包括如何实现"fall through"、default语句的作用、在case语句中定义变量时可能出现的问题以及解决方法。同时也提到了C#严格控制switch分支不允许贯穿的规定。通过本文的介绍,读者可以更好地理解和使用switch语句。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 使用C++编写程序实现增加或删除桌面的右键列表项
    本文介绍了使用C++编写程序实现增加或删除桌面的右键列表项的方法。首先通过操作注册表来实现增加或删除右键列表项的目的,然后使用管理注册表的函数来编写程序。文章详细介绍了使用的五种函数:RegCreateKey、RegSetValueEx、RegOpenKeyEx、RegDeleteKey和RegCloseKey,并给出了增加一项的函数写法。通过本文的方法,可以方便地自定义桌面的右键列表项。 ... [详细]
  • switch分支结构一、程序运行流程的分类1、顺序结构:根据程序顺序依次执行。2、分支结构:根据判断决定程序的执行顺序。3、循环结构。分支结构三要素&# ... [详细]
  • 本文介绍了brain的意思、读音、翻译、用法、发音、词组、同反义词等内容,以及脑新东方在线英语词典的相关信息。还包括了brain的词汇搭配、形容词和名词的用法,以及与brain相关的短语和词组。此外,还介绍了与brain相关的医学术语和智囊团等相关内容。 ... [详细]
  • 本文介绍了一个Java猜拳小游戏的代码,通过使用Scanner类获取用户输入的拳的数字,并随机生成计算机的拳,然后判断胜负。该游戏可以选择剪刀、石头、布三种拳,通过比较两者的拳来决定胜负。 ... [详细]
  • 这篇文章主要介绍了Python拼接字符串的七种方式,包括使用%、format()、join()、f-string等方法。每种方法都有其特点和限制,通过本文的介绍可以帮助读者更好地理解和运用字符串拼接的技巧。 ... [详细]
  • C语言常量与变量的深入理解及其影响
    本文深入讲解了C语言中常量与变量的概念及其深入实质,强调了对常量和变量的理解对于学习指针等后续内容的重要性。详细介绍了常量的分类和特点,以及变量的定义和分类。同时指出了常量和变量在程序中的作用及其对内存空间的影响,类似于const关键字的只读属性。此外,还提及了常量和变量在实际应用中可能出现的问题,如段错误和野指针。 ... [详细]
  • 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
    本文旨在全面介绍Windows内存管理机制及C++内存分配实例中的内存映射文件。通过对内存映射文件的使用场合和与虚拟内存的区别进行解析,帮助读者更好地理解操作系统的内存管理机制。同时,本文还提供了相关章节的链接,方便读者深入学习Windows内存管理及C++内存分配实例的其他内容。 ... [详细]
  • 本文介绍了GTK+中的GObject对象系统,该系统是基于GLib和C语言完成的面向对象的框架,提供了灵活、可扩展且易于映射到其他语言的特性。其中最重要的是GType,它是GLib运行时类型认证和管理系统的基础,通过注册和管理基本数据类型、用户定义对象和界面类型来实现对象的继承。文章详细解释了GObject系统中对象的三个部分:唯一的ID标识、类结构和实例结构。 ... [详细]
  • ejava,刘聪dejava
    本文目录一览:1、什么是Java?2、java ... [详细]
  • C语言的经典程序有哪些
    本篇内容介绍了“C语言的经典程序有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何 ... [详细]
  • CCNP交换实验(VLAN/VTP/DHCP)
    实验要求:本拓扑按典型中小企业网分支-总部-分支结构模拟,总部核心路由为C3550,外联网通过OSPF协议,内联网通过VTP ... [详细]
author-avatar
jerry613
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有