目录

 



文章目录


 

前文列表

《程序编译流程与 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 语句

C 语言编程 — 逻辑控制语句_#include

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 结构。

C 语言编程 — 逻辑控制语句_#include_02

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;


C 语言编程 — 逻辑控制语句_嵌套_03

#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 循环终止。

C 语言编程 — 逻辑控制语句_局部变量_04

#include <stdio.h>

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


嵌套 for 循环

C 语言编程 — 逻辑控制语句_嵌套_05

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


while 循环

C 语言编程 — 逻辑控制语句_结构化程序_06

#include <stdio.h>

int main ()
{
/* 局部变量定义 */
int a = 10;

/* while 循环执行 */
while( a < 20 )
{
printf("a 的值: %d\n", a);
a++;
}

return 0;
}


嵌套 while 循环

C 语言编程 — 逻辑控制语句_结构化程序_07

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


do/while 循环

C 语言编程 — 逻辑控制语句_选择结构_08

#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 循环

C 语言编程 — 逻辑控制语句_局部变量_09

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


循环控制语句

C 语言编程 — 逻辑控制语句_选择结构_10

  • break
    C 语言编程 — 逻辑控制语句_局部变量_11
  • continue
    C 语言编程 — 逻辑控制语句_#include_12
  • goto
    C 语言编程 — 逻辑控制语句_嵌套_13