首页 > 其他分享 >流程结构

流程结构

时间:2022-09-29 21:00:09浏览次数:41  
标签:语句 流程 while else switch 循环 表达式 结构

  1. 顺序结构

一步一步执行的语句

#include<stdio.h>

int main(void)

{

int a = 2345;

int b;//个位

int        c;//十位

int d;//百位

int e;//千位

b = a % 10;

c = a / 10 % 10;

d = a / 100 % 10;

e = a / 1000 % 10;

printf("2345\n");

printf("个位:%d\n",b);

printf("十位:%d\n",c);

printf("百位:%d\n",d);

printf("千位:%d\n",e);

return 0;

}

 

  1. 循环结构 while、do-while、for

循环可以嵌套使用,全局变量使用后注意重置变量。

循环可控三要素:

1、循环变量要有初始值

2、循环执行条件

3、循环控制变量要有规律的值的变化

  1. while
  1. 一般格式

while(表达式)

{

代码块;

}

  1. while循环流程图

流程结构_流程图

  1. 循环执行过程

首先计算表达式,表达式是否为1或非零。若其值为非0,则执行循环体,并重新计算表达式,循环一直持续到表达式的值变成0为止。

  1. 代码块

只有一条语句时,可以不加花括号。建议全部加上花括号。

  1. 注意事项
  1. while()后面没有分号“;”
  2. 注意书写规范
  1. 花括号位置
  2. 花括号成对出现

 

 

  1. do-while
  1. 一般格式

do

{

代码块;

}

while(表达式);

  1. do-while循环流程图

流程结构_控制变量_02

  1. 循环执行过程

先执行代码块,后判断表达式

 

 

  1. for循环
  1. 一般格式

环境控制变量  循环执行条件  循环控制变量变化

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

{

代码块;

}

例如:

for (d = 1; d <= 3; d++)

{

printf("%d",d);

}

  1. 循环流程图

流程结构_代码块_03

  1. 注意事项
  1. 三条语句中间是分号“;”不是逗号
  2. 注意添加花括号
  1. for语句的灵活性
  2. 表达式1(环境控制变量)
    1. 通常写变量的初始值
    2. 多条赋值语句用逗号隔开“,”

for(a=1,b=0;a<=10;a++)

{

printf("%d",a);

}

  1. 可以填写表达式,或者调用函数
  2. 表达式2(循环执行条件)
  1. 可以什么都不写,表示真,是死循环

for( a=0 ; 1 ; a++)//死循环

for( a=1 ;  ;a++)//死循环

for(  ;  ;  )//死循环

  1. 可以填写表达式,或者调用函数
  2. 表达式3(循环控制变量变化)
  1. 一般写循环控制变量的变化
  2. 可以写多个用逗号 "," 隔开

 

 

  1. 中止循环语句
  1. break跳出所在循环

例:

流程结构_代码块_04

 

  1. continue执行下一次循环(只能在循环中使用)

例如

流程结构_流程图_05

 

 

3.条件选择(选择判断)

  1. if语句
  1. 一种选择
  1. 一般形式

if(表达式)

{

代码块

}

流程结构_流程图_06

  1. 流程图

流程结构_控制变量_07

  1. 两种选择
  1. 一般形式

if(表达式)

{

语句1;

}

else

{

语句2;

}

  1. 流程图

流程结构_流程图_08

  1. 多种选择
  1. 一般形式

if(表达式1)

{

语句1;

}

else if(表达式2)

{

语句2;

}

else if(表达式n)

{

语句n;

}

…………….

else

{

语句n+1;

}

  1. 流程图

流程结构_控制变量_09

  1. 注意事项

        if else_if 中两条语句都满足,就先执行满足条件的语句剩下的不执行。

流程结构_流程图_10

  1. if语句嵌套
  1. 一般形式

if(表达式)

{         //内嵌if

if(表达式){ 代码块;}

else{ 代码块;}

}

else

{

 //内嵌if

if(表达式){ 代码块;}

else{ 代码块;}

}

  1. 注意:if  else的配对关系

else总与它上面最近的else配对

 

4.开关语句switch

  1. 一般形式:

switch(表达式)

{

case 常量表达式1:

语句1;

break;

case  常量表达式2:

语句2;

break;

……………………………

case 常量表达式n:

语句n;

break;

default  :

语句n+1;

}

例:

流程结构_控制变量_11

运行顺序 1、先计算表达式的值

2、将该值与常量表达式比较

3、该值与常量表达式相等,则执行case后面的语句。碰到break;或者default结束。

4、若无相等情况常量则执行default后面的语句。

  1. 注意事项
  1. case 后面没有break;语句会一直执行到default。

流程结构_代码块_12

  1. 当循环包含switch,switch包含break时,break只会跳出switch不会跳出循环。

流程结构_控制变量_13

  1. seitch表达式中写具体的值不要写范围

流程结构_代码块_14

switch (a > 0 && a < 5)

switch中的表达式为switch (a > 0 && a < 5)

系统会先判断  a>0  是真是假    

       然后判断 a<5 是真是假

  两个都为真  1&&1 也是1

  所以输出case  1:中的语句

  1. 常量表达式不能重复,会报错

流程结构_控制变量_15

  1. switch 中 default 可以不写

流程结构_代码块_16

  1. switch中的表达式不可以是浮点数

流程结构_代码块_17

 

 

5.无条件转移语句go to

在c语言中go to语句尽量少用

  1. go to一般形式

go to 语句标号;

………

语句标号:

a:

printf("世界你好\n");

goto a;

 

 

 

 

 

 

 

 

标签:语句,流程,while,else,switch,循环,表达式,结构
From: https://blog.51cto.com/u_15430915/5724031

相关文章

  • 【C语言_9】快速掌握分支结构!
    1.分支结构的标准公式//单条语句if(测试条件)条件为真所执行的语句else条件为假所执行的语句//多条语句if(测试条件){条件为真所执行的流程}else{条件为假......
  • ArchUnit验证代码和体系结构约束
    简介:ArchUnit用于校验类和包是否符合依赖关系规范添加jar包<!--测试代码结构合理性--><dependency><groupId>com.tngtech.archunit</......
  • 一、注册输入验证码流程整合-13
    #coding=utf-8#浏览器驱动包fromseleniumimportwebdriver#引入随机数生成包importrandom#使用pip库进行图片解析包/取图片的包fromPILimportImage#p......
  • 【设计模式】29.结构型模式-装饰模式(Decorator)
    一、描述装饰模式能够在不改变原来对象结构和功能的前提下,动态的给对象增加新的功能,相比于使用子类扩展的方式,装饰模式更加的灵活。角色(1)抽象构件类:为具体构件类和装饰......
  • SpringSecurity流程图
    ......
  • 驱动开发:内核中的自旋锁结构
    提到自旋锁那就必须要说链表,在上一篇《驱动开发:内核中的链表与结构体》文章中简单实用链表结构来存储进程信息列表,相信读者应该已经理解了内核链表的基本使用,本篇文章将讲解......
  • 【树结构】【递归】【CTE】【PostgreSQL 】
    1表结构oid、pid为父子结构2代码点击查看代码WITHRECURSIVEfas(SELECT*FROMwg_formulaWHEREoid=1UNIONallSELECTwg_formula.*FROMwg_formul......
  • 程序结构和流程控制
    ifif单选择结构if(布尔表达式){//布尔表达式为true时执行的语句}if双选择结构if(){//布尔表达式为true执行的语句}else{//布尔表达式为false执行的语句}if......
  • 结构赋值的高阶用法
    结构赋值的高阶用法结构赋值对于引用嵌套的属性或目标没有限制。为此,可以通过结构来复制对象属性。letobj1={a:1,b:2,c:3};letobj2={};({a:obj......
  • 结构体指定初始化
    结构体指定初始化应该是C和C++都有的一个语法。这个语法在ffmpeg中被大量使用。 1.应用场景比如ffmpeg中AVInputFormatff_mov_demuxer={.name=......