程序结构

在C语言程序里,一共有三种程序结构:顺序结构、选择结构(分支结构)、循环结构

1、顺序结构:按照实物本身特性,必须一个接着一个来完成。
2、选择结构:到某个节点后,会根据一次判断结果来决定之后走哪一个分支。
3、循环结构:循环结构有一个循环体,循环体是一段代码。对于循环结构来说,关键在于根据判断的结果,来决定循环体执行多少次。

总结:对于顺序结构来说,不需判断,因为下一句指令就是你要执行的。对与循环与选择结构来说,都需要进行判断。然后根据判断结果来决定怎么办。逻辑上有一种类型,叫bool类型(又写作boolean类型,中文叫布尔类型)。布尔类型只有两个值,真和假。

C语言中有以下一些判断运算符

==   等于
!=   不等于
>      大于
<      小于
>=    大于等于
<=    小于等于

使用这些判断运算符,可以写出一个判断表达式,这个判断表达式最终的值就是一个bool类型。这个判断表达式的bool值就决定了选择结构如何选择,循环结构如何循环。

1、选择结构详解:
C语言中选择结构一共有两种:
第一种:

if else
引入关键字:if         else        else ifif (bool值)               // 如果bool值为真,则执行代码段1,否则执行代码段2
{代码段1
}
else
{代码段2
}
解析:
if (bool值1)             // 如果bool值1为真,则执行代码段1
{                           // 否则则判断bool值2是否为真,若为真则执行代码段2代码段1                    // 否则直接执行代码段3
}
else if (bool值2)            // 开头的if和结尾的else都只能有一个,但是中间的
{                           // else if可以有好多个。代码段2
}
else
{代码段3
}

练习题目:
规则:90分及以上为优,80分及以上为良,60分及以上为及格,以下为不及格,然后输入一个学生分数,然后printf打印“you” “liang” “jige” "bujige"

#include <stdio.h>int main(void)
{int grade;grade = 97;if (grade >= 90)     {printf("you.\n");}else if (grade >= 80)  // ((grade >= 80) && (grade < 90)){printf("liang.\n");}else if (grade >= 60)   {printf("ji ge.\n");}else{printf("bu ji ge.\n");}return 0;
}// if (100 >= grade >= 90)     // C语言不支持,应该写成下面一行的样子
// if ((grade >= 90) && (grade <= 100))
// && 逻辑与运算符,它连接的两边都是真的时候,最后的结果才是真。只要两边
//有一边为假,最终的结果就为假。

第二种:switch case
涉及到的C语言关键字:switch case break default

switch (变量)              // 执行到这一句时,变量的值已经知道了
{                           // switch case语句执行时,会用该变量的值一次与各个case 常数1:                // case后的常数去对比,试图找到第一个匹配项。代码段1;              // 找到匹配的项目后,就去执行该case对应的代码段break;                // 如果没找到则继续下一个case,直到default。case 常数2:               // 如果前面的case都未匹配,则default匹配。代码段2;break;.....default:代码段n;break;
}

注意:
1、case中必须是常数,而且必须是整形(不能是float double,可以是int char)
2、一般来说,每个case中代码段后都必须有一个break;如果没有,结果可能会让你大吃一惊
3、case之后一般都会有default。语法上允许没有default,但是建议写代码时一定要写。

练习题目:
规则:9输入数字1,打印a;输入2,打印b,依次类推直到z

int main(void)
{int num;num =7;// 使用switch case语句来完成相同功能:switch (num){case 1:printf("a\n");break;case 2:printf("b\n");break;case 3:printf("c\n");break;case 4:printf("d\n");break;case 5:printf("e\n");break;case 6:printf("f\n");break;case 7:printf("g\n");break;default:printf("------\n");break;}/*    if (num == 1){printf("a\n");}else if (num == 2){printf("b\n");}else if (num == 3){printf("c\n");}else if (num == 4){printf("d\n");}else if (num == 5){printf("e\n");}else if (num == 6){printf("f\n");}else if (num == 7){printf("g\n");}else{printf("------\n");}
*/return 0;
}

switch case和if else对比:
1、if else适合对比条件比较复杂,但是分支比较少的情况;switch case适合那种对比条件
不复杂,但是分支数很多的情况。
2、所有的选择结构,其实都可以用if else来实现。但是只有部分才可以用switch case实现。
一般的做法是:在适合使用switch case的情况下会优先使用switch case,如果不适合使用switch case,则不得不使用if else。
2、C语言中的循环结构
C语言中常用的循环结构有三个:for循环、while循环、do while循环。
2.1、for循环

for (循环控制变量初始化; 循环终止条件; 循环控制变量增量)
{
循环体
}

for循环的执行步骤:
1、先进行循环控制变量初始化
2、执行循环终止条件,如果判断结果为真,则进入第3步;如果为假则循环终止,退出。
3、执行循环体。
4、执行循环控制变量增量,转入第2步。

注意:
1、for循环中()中三部分可不可以省略?
标准的for循环,应该把循环控制变量的初始化,增量都放在()当中,并且在循环体中绝对不应该更改循环控制变量(可以引用它的值,但不应该改变它)。
练习题目:
规则:计算10!

#include <stdio.h>int main(void)
{int i, val;/*for (i=1,val=1; i<=10; i++){val *= i;printf("i = %d.\n", i);      // 使用printf进行调试}*//*for (i=1,val=1; i<11; i++){val *= i;                    // 这种写法更普遍// val = val * i;            // 这种写法也可以,但是一般除了新手不采用printf("i = %d.\n", i);     // 使用printf进行调试}*/for (i=10,val=1; i>=1; i--){val *= i;printf("i = %d.\n", i);        // 使用printf进行调试}printf("val = %d.\n", val);return 0;
}

2.2、while循环

i = 1;
sum = 0;                   // 循环初始化
while (i < 100)              // 终止条件
{printf("i = %d.\n", i);sum += i;              // 循环体i += 2;                 // 循环控制增量,属于循环体的一部分
}

while循环的执行步骤:
0、首先是循环初始化。这一部分其实不属于while循环本身。
1、先判断终止条件是否满足。如果是真,则进入第2步;否则直接退出。
2、执行循环体,然后转入第1步。
练习题目:
规则:计算100以内所有奇数的和

#include <stdio.h>int main(void)
{int i, sum;i = 1;sum = 0;while (i < 100){printf("i = %d.\n", i);sum += i;i += 2;}printf("sum = %d.\n", sum);return 0;
}

2.3、do while循环

i = 1;
sum = 0;                   // 初始化条件
do
{printf("i = %d.\n", i);sum += i;i += 2;                 // 增量,循环体的一部分
}while (i < 100);            // 终止条件

do while循环的执行步骤:
0、首先是循环初始化。这一部分其实不属于do while循环本身。
1、执行循环体(循环控制变量的增量是循环体的一部分)
2、判断终止条件。若成立,则转入1;若不成立则退出

总结:不管哪种循环结构,都不能缺少一些要素:循环控制条件初始化,终止条件,循环控制变量增量,循环体。不同的循环方式(for和while和do while)都有这些,只是格式不同,表现形式不同,放的地方不同,可读性不同,看起来和设计起来难度不同。

while循环和do while循环哪里不同?while循环是先判断后执行,do while循环是先执行后判断等循环开始转了之后,其实是一样的。

由于还有其他的程序结构,暂时只是先介绍这些,之后如果有学习到会继续更新。

程序结构(顺序结构、选择结构、循环结构)相关推荐

  1. Java入门之顺序、选择、循环结构

    Java入门之顺序.选择.循环结构 顺序结构: package com.LynnStudy.scanner; import java.util.Scanner; /*** @Author hql* @ ...

  2. 吐血整理:C#顺序、选择、循环结构用法与案例,这一篇就够了!

    C#语言中用于结构化程序设计的三种基本结构是:顺序结构.选择结构.循环结构.本文详细整理了以上三种结构的用法,案例. 文章目录 4.1 顺序结构 4.1.1 赋值语句 4.1.2 输入语句 4.1.3 ...

  3. java--顺序、选择、循环结构

    顺序.选择.循环结构 1. 流程控制 1.1 概述 1.2 分类 1.3 顺序结构 2.选择结构 2. 1选择结构之if语句 单分支 双分支 案例 重要点 多分支 案例 2.2 选择结构之switch ...

  4. c 语言程序的三种基本结构,C 语言程序的三种基本结构是____ A、顺序结构,选择结构,循环结构 B、递归结构,循环结构,转移结构...

    C 语言程序的三种基本结构是____ A.顺序结构,选择结构,循环结构 B.递归结构,循环结构,转移结构 更多相关问题 [填空题]移动电商,全称 ,是以 为载体的电商模式. [单选题]有关离子选择性电 ...

  5. C++ —— C++三大分支结构(顺序、选择、循环)

    C++ --三大结构(顺序.选择.循环) 一.顺序结构的几种常用语句 1.声明语句 程序中所有由程序员给出的名字标识符,包括变量.常量.对象.类.类型.函数.参数等都要在使用前进行说明或定义.一般地, ...

  6. java选择循环_java选择和循环结构

    选择和循环结构 顺序 (1)按照程序的流程从上而下执行流程. 选择结构 If 概念 对条件判断[一个条件的结果:true:false] 执行判断结果,所想要处理的代码 如果(true){ System ...

  7. 重学JavaSE 第4章 : 顺序结构、分支语句、循环结构、break, continue, return区别

    文章目录 一. 程序流程控概述 二. 顺序结构 三.分支语句 2.1.分支语句1:if-else结构 2.1.1.输入语句 2.2. 分支语句2:switch-case结构 四.循环结构 4.1.fo ...

  8. c语言选择循环实验报告,C语言程序设计实验报告选择与循环结构程序设计.doc

    C语言程序设计实验报告选择与循环结构程序设计.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的 ...

  9. c语言程序设计循环结构实验报告,C语言程序设计实验报告选择与循环结构程序设计.doc...

    C语言程序设计实验报告选择与循环结构程序设计 学 生 实 验 报 告 学 院: 软件与通信工程学院 课程名称: C++与程序设计 专业班级: 通信121 姓 名: 学 号: 学生实验报告(2) 学生姓 ...

  10. c语言循环设计思想结构,C语言程序设计_05循环结构程序设计讲述.pptx

    C语言程序设计_05循环结构程序设计讲述 第5章 循环结构程序设计5.1 while循环结构5.2 do-while循环结构5.3 for循环结构5.4 与循环有关的控制语句5.5 3种循环语句的比较 ...

最新文章

  1. 中体骏彩C++面试题
  2. 安卓手机格式化怎么弄_安卓手机无法启动如何进行格式化
  3. 代码这样写更优雅(Python版)
  4. 0007-Reverse Integer(整数反转)
  5. 让vs编写的程序在未安装vs的电脑上使用的一种方法
  6. python 标准库之os
  7. 弱引用WeakReference
  8. 计算机仿真实训操作开车步骤,计算机仿真上机实训指导书.doc
  9. 记一次小程序自定义导航栏及加载动画的解决方案
  10. JS数组操作之增删改查
  11. JavaScript之JS单线程|事件循环|事件队列|执行栈
  12. 飞思卡尔16位单片机(一)——飞思卡尔单片机简介
  13. java 造数据_java测试造数据神器JavaFaker
  14. java 获取一年内周六周日日期
  15. 单片机c语言程序编写步骤,Proteus运行Keil编写的51单片机C语言步骤
  16. 不同网络环境下监控视频统一汇聚集中管理方案介绍
  17. 极光推送集成APP和web服务
  18. Cisco设备如何通过console口连接计算机并对设备进行配置
  19. 内网穿透远程控制Windows主机
  20. MOS管选型需要注意四大点-方案商选型可查看-KIA MOS管

热门文章

  1. wxpython绘制雷达图_Tableau可视化分析【8】解锁雷达图
  2. gcc: error trying to exec ‘cc1plus‘: execvp: Permission denied
  3. python excel行列转置_Excel 行列转换的最简方法
  4. 帝国PHP二次开发,帝国CMS二次开发有哪些注意事项
  5. PAT A 1013. Battle Over Cities
  6. Visual Studio(VS) 2019版本下载官方地址
  7. Unity中XChart饼图如何增加调色盘颜色选项
  8. easyexcel 第一次导入导出会报错com.alibaba.excel.exception.ExcelAnalysisException,所以自定义excel导入导出表格
  9. 身份证上传识别测试点
  10. 逆向入门(4)汇编篇-常用指令的学习