目录

前文列表

程序编译流程与 GCC 编译器

C 语言编程 — 基本语法

C 语言编程 — 基本数据类型

C 语言编程 — 变量与常量

C 语言编程 — 运算符

结构化程序设计

结构化程序:采用结构化算法化繁为简地把一个复杂问题的求解过程分成可控、易理解和易处理的阶段进行,实现一个便于编写、阅读、修改和维护的程序。

三种基本结构:1966 年,Bohra 和 Jacopini 提出顺序结构、选择结构和循环结构三种基本结构,用这三种基本结构作为表示一个良好算法的基本单元。

  • 顺序结构:是由一组顺序执行的程序块组成。程序按照语句书写的顺序一步一步顺序执行,没有任何的跳转。
  • 选择结构:依据不同的条件选择执行不同的处理块。可以采用 if/else 语句、switch 语句,还有条件运算符来实现选择结构。
  • 循环结构:又称重复结构,反复执行某一部分的操作。

条件分支语句

条件分支语句可以让程序在只有条件为真的时候才去执行一段代码。

if/else 语句

if 语句

#include <stdio.h>

int main ()
{
/* 局部变量定义 */
int a = 10; /* 使用 if 语句检查布尔条件 */
if( a < 20 )
{
/* 如果条件为真,则输出下面的语句 */
printf("a 小于 20\n" );
}
printf("a 的值是 %d\n", a); return 0;
}

if/else 语句

#include <stdio.h>

int main ()
{
/* 局部变量定义 */
int a = 100; /* 检查布尔条件 */
if( a < 20 )
{
/* 如果条件为真,则输出下面的语句 */
printf("a 小于 20\n" );
}
else
{
/* 如果条件为假,则输出下面的语句 */
printf("a 大于 20\n" );
}
printf("a 的值是 %d\n", a); return 0;
}

if/else-if/else 语句

#include <stdio.h>

int main ()
{
/* 局部变量定义 */
int a = 100; /* 检查布尔条件 */
if( a == 10 )
{
/* 如果 if 条件为真,则输出下面的语句 */
printf("a 的值是 10\n" );
}
else if( a == 20 )
{
/* 如果 else if 条件为真,则输出下面的语句 */
printf("a 的值是 20\n" );
}
else if( a == 30 )
{
/* 如果 else if 条件为真,则输出下面的语句 */
printf("a 的值是 30\n" );
}
else
{
/* 如果上面条件都不为真,则输出下面的语句 */
printf("没有匹配的值\n" );
}
printf("a 的准确值是 %d\n", a ); return 0;
}

嵌套 if 语句

#include <stdio.h>

int main ()
{
/* 局部变量定义 */
int a = 100;
int b = 200; /* 检查布尔条件 */
if( a == 100 )
{
/* 如果条件为真,则检查下面的条件 */
if( b == 200 )
{
/* 如果条件为真,则输出下面的语句 */
printf("a 的值是 100,且 b 的值是 200\n" );
}
}
printf("a 的准确值是 %d\n", a );
printf("b 的准确值是 %d\n", b ); return 0;
}

switch 语句

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

执行过程:

  1. 先计算表达式 1 的值。
  2. 然后依次把表达式 1 的值与常量表达式的值进行比较。
  3. 一旦发现表达式 1 的值能够与某个常量表达式配对, 则以此为入口号,由此开始顺序执行语句。
  4. 若表达式 1 的值与所有的 case 中的常量表达式均无法匹配, 则执行 default 后的语句组 n + 1。

NOTE:

  • default 是个可选项,如果 switch 语句中没有 default 分支,则当 switch 后的表达式与所有的常量表达式都不匹配时,将不执行任何操作。
  • 每当表达式 oper 找到匹配的常量表达式时,会把顺序执行剩余的语句组。如果目的只是需要特定的运算结果,这时,可以采用 break 语句退出 switch 结构。

switch 语句

#include <stdio.h>

int main ()
{
/* 局部变量定义 */
char grade = 'B'; switch(grade)
{
case 'A' :
printf("很棒!\n" );
break;
case 'B' :
case 'C' :
printf("做得好\n" );
break;
case 'D' :
printf("您通过了\n" );
break;
case 'F' :
printf("最好再试一下\n" );
break;
default :
printf("无效的成绩\n" );
}
printf("您的成绩是 %c\n", grade ); return 0;
}

嵌套 switch 语句

switch(ch1) {
case 'A':
printf("这个 A 是外部 switch 的一部分" );
switch(ch2) {
case 'A':
printf("这个 A 是内部 switch 的一部分" );
break;
case 'B': /* 内部 B case 代码 */
}
break;
case 'B': /* 外部 B case 代码 */
}

三元运算符

Exp1 ? Exp2 : Exp3;

#include<stdio.h>

int main()
{
int num; printf("输入一个数字 : ");
scanf("%d",&num); (num%2==0)?printf("偶数"):printf("奇数");
}

循环语句

循环可以不断的执行一段代码,直到条件变为假,或者计数完成。

for 循环

for ( init; condition; increment )
{
statement(s);
}
  1. init 会首先被执行,且只会执行一次。这一步允许您声明并初始化任何循环控制变量。您也可以不在这里写任何语句,只要有一个分号出现即可。
  2. 接下来,会判断 condition。如果为真,则执行循环主体。如果为假,则不执行循环主体,且控制流会跳转到紧接着 for 循环的下一条语句。
  3. 在执行完 for 循环主体后,控制流会跳回上面的 increment 语句。该语句允许您更新循环控制变量。该语句可以留空,只要在条件后有一个分号出现即可。
  4. 条件再次被判断。如果为真,则执行循环,这个过程会不断重复(循环主体,然后增加步值,再然后重新判断条件)。在条件变为假时,for 循环终止。

#include <stdio.h>

int main ()
{
/* for 循环执行 */
for( int a = 10; a < 20; a = a + 1 )
{
printf("a 的值: %d\n", a);
}
return 0;
}

嵌套 for 循环

for (initialization; condition; increment/decrement)
{
statement(s);
for (initialization; condition; increment/decrement)
{
statement(s);
... ... ...
}
... ... ...
}

while 循环

#include <stdio.h>

int main ()
{
/* 局部变量定义 */
int a = 10; /* while 循环执行 */
while( a < 20 )
{
printf("a 的值: %d\n", a);
a++;
} return 0;
}

嵌套 while 循环

while (condition1)
{
statement(s);
while (condition2)
{
statement(s);
... ... ...
}
... ... ...
}

do/while 循环

#include <stdio.h>

int main ()
{
/* 局部变量定义 */
int a = 10; /* do 循环执行 */
do
{
printf("a 的值: %d\n", a);
a = a + 1;
}while( a < 20 ); return 0;
}

嵌套 do/while 循环

do
{
statement(s);
do
{
statement(s);
... ... ...
}while (condition2);
... ... ...
}while (condition1);

循环控制语句

  • break

  • continue

  • goto

C 语言编程 — 逻辑控制语句的更多相关文章

  1. C#语言-03.逻辑控制语句

    a. 逻辑控制语句: i. 条件语句:先对条件判断,然后根据判断结果执行不同的分支 . If 和 if-else:判断“布尔表达式的值”来决定执行那个代码块 a. 语法:if(布尔表达式){ b. 布 ...

  2. R语言编程艺术(3)R语言编程基础

    本文对应<R语言编程艺术> 第7章:R语言编程结构: 第9章:面向对象的编程: 第13章:调试 ============================================== ...

  3. SQL server学习(三)T-SQL编程、逻辑控制语句和安全模式

    T-SQL编程 T-SQL编程与C语言类似,只是语法稍有不同而已,总体思想还是没有变化的.多的就不说了,还是从变量开始. 变量也分为全局变量和局部变量,表示方式稍有不同. 局部变量: 局部变量必须以标 ...

  4. C语言编程入门之--第六章C语言控制语句

    导读:本章带读者理解什么是控制语句,然后逐个讲解C语言常用的控制语句,含有控制语句的代码量多起来后就要注意写代码的风格了,本章末节都是练习题,大量的练习才能掌握好控制语句的使用. 6.1 什么是控制语 ...

  5. 华为C语言编程规范

    DKBA华为技术有限公司内部技术规范DKBA 2826-2011.5C语言编程规范2011年5月9日发布 2011年5月9日实施华为技术有限公司Huawei Technologies Co., Ltd ...

  6. 使用变量 数据类型转换 逻辑控制语句(begin ...end; case...end; if...else; while)

    一:变量 变量分为局部变量和全局变量  (全局变量是系统自定的,是不可手动给值的,若想自己定义全局变量可考虑创建全局临时表!) 局部变量的定义:  declare @变量名  数据类型 (局部变量只能 ...

  7. 第二章 C语言编程实践

    上章回顾 宏定义特点和注意细节 条件编译特点和主要用处 文件包含的路径查询规则 C语言扩展宏定义的用法 第二章 第二章 C语言编程实践 C语言编程实践 预习检查 异或的运算符是什么 宏定义最主要的特点 ...

  8. linux 操作系统下c语言编程入门

    2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门--时间概念 5)Linux程序设计入门--信号处理 6)Linux程序设计入门--消息管理  ...

  9. R语言编程艺术(2)R中的数据结构

    本文对应<R语言编程艺术>第2章:向量:第3章:矩阵和数组:第4章:列表:第5章:数据框:第6章:因子和表 ======================================== ...

  10. Go 语言编程

    [课程名称]Go 语言编程   [课程时间]2014年7月30日(周三) 20:50 - 22:00         [课程安排]20:50-21:00     通过邮件地址登录网络课堂       ...

随机推荐

  1. #树状数组#洛谷 3531 [POI2012] LIT-Letters

    题目 给出两个长度相同且由大写英文字母组成的字符串\(A\).\(B\),保证\(A\)和\(B\)中每种字母出现的次数相同. 现在每次可以交换\(A\)中相邻两个字符,求最少需要交换多少次可以使得\ ...

  2. Debian 11 x64 安装 MySQL 8.0.33

    更新 sudo apt update sudo apt install gnupg 安装 DEB Package wget -c https://dev.mysql.com/get/mysql-apt ...

  3. JDK9的新特性:JPMS模块化

    目录 简介 JDK9中模块的实现 JDK中的module 创建自己的module 深入理解module-info transitive static exports to open pacakge p ...

  4. 【分享汇总】AIoT 开源科技节暨 OpenHarmony 技术论坛(附链接)

    在开源科技 OSTech 和环球资源联手举办的"AIoT 开源科技节暨 OpenHarmony 技术论坛"上,一众技术大咖.开源鸿蒙生态上下游厂商与开发者群体齐聚一堂,畅谈&quo ...

  5. Go 语言学习:了解 const 关键字及常量声明

    如果一个变量应该有一个固定的.不能改变的值,你可以使用const关键字. const关键字将变量声明为"常量",这意味着它是不可改变和只读的. 语法 const CONSTNAME ...

  6. 初学STM32 SDIO (二)

    ​ SD命令由主机发出,以广播命令和寻址命令为例,广播命令是针对与SD主机总线连接的所有从设备发送的,寻址命令是指定某个地址设备进行命令传输. 1.SD命令格式 SD命令格式固定为48bit,都是通过 ...

  7. 一文告诉你商业智能BI如何推动推动智慧物流发展

    随着网络消费的不断发展,推动了物流等相关产业的迅速发展,另外无论是2B业务还是2C业务的生产制造企业,对物流的要求都越来越高,尤其体现在对物流全程透明可视化的需求.商业智能BI平台的引入,大大提高了物 ...

  8. Linux:vscode扩展无法下载,报错:Error while fetching extensions : XHR failed

    在Linux系统上下载安装好vscode以后,发现扩展里面无法下载安装,报错:Error while fetching extensions : XHR failed 解决办法:修改 hosts 文件 ...

  9. HarmonyOS应用开发Web组件基本属性应用和事件

      一.Web组件概述 Web组件用于在应用程序中显示Web页面内容,为开发者提供页面加载.页面交互.页面调试等能力. ● 页面加载:Web组件提供基础的前端页面加载的能力,包括加载网络页面.本地页面 ...

  10. 定了!12支队伍进入HarmonyOS极客马拉松2023决赛

      12支队伍将在8月初,华为开发者大会(HDC.Togerther)上展开巅峰对决!