C语言速成手册(二):布尔值、条件判断、循环

Via http://www.matrix67.com/blog/archives/218 by Matrix67

目录:
C语言速成手册(一):基本数据类型、标准输出、函数
C语言速成手册(二):布尔值、条件判断、循环
C语言速成手册(三):数组、字符串、结构
C语言速成手册(四):指针、动态内存分配、标准输入
C语言速成手册(五):其它运算符、文件操作、其它函数
C语言速成手册(六):其它问题、后记

逻辑运算符

    作用   |  C  | Pascal
  ———+—–+———–
    等于   | ==  |  =
   不等于  | !=  |  <>
    小于   | <   |  <
    大于   | >   |  >
  小于等于 | <=  |  <=
  大于等于 | >=  |  >=
     且    | &&  |  and
     或    | ||  |  or
     非    |  !  |  not

C语言的if语句

    C语言中if语句的写法如下:


    之前说过,如果执行的内容只有一句话,花括号可以省略。

    下面的语句将返回整数a的绝对值:

    下面的语句用于实现排序网络中的比较算子:

     C语言中也有else if和else的用法,但和Pascal不同的是else的前一条语句末要保留分号。下面的语句用于判断三边长分别为a, b, c的三角形是什么三角形:

 

C语言的bool类型

    C语言中没有布尔类型。任何一个整型的变量都可以充当布尔变量,用0表示False,其它数(默认为1)表示True。
    观察下列代码片断。

 


    这段程序的输出为:


    如果觉得别扭,你可以使用_Bool类型。你可以把_Bool看作整型,但它只能储存0和1两个值。
    下面三句话将输出数字1,这是因为_Bool类型把所有非0数都当做是1。


    如果你想像Pascal一样使用true和false,那么你可以包含头文件stdbool.h。这样你可以定义变量为bool类型并赋值为true或false。例如:


    下面是两个完整的程序。第一个程序中_Bool可以替换成int。三种写法都正确,你可以选择一种自己喜欢的写法。

 

C语言的for循环

    for循环使用下面的语句:

 


    其中语句1用于初始化,若语句2为真(非0)则进入循环;每次循环后将执行语句3,此时若仍然满足语句2则继续循环,否则退出。语句123中,某一种语句可能为空,也可能由多条语句组成(多条语句用逗号隔开)。
    下面的语句打印1到10这10个数。以下所有写法都是正确的。通常用第一种写法。


    巧妙地应用for循环可以使某些操作非常简单。下面的函数可以计算n的质因子个数:


    下面的语句将产生死循环:

 

C语言的while循环

    while循环格式如下:

 


    下面的代码计算1394和6150的最大公约数:

do..while循环
    do..while循环的格式如下:


    将条件放在循环内容的后面,使程序至少执行循环内容一次。

循环控制
    C语言中使用break语句和continue语句来控制循环,其使用方法与Pascal完全一样。

switch语句
    switch语句相当于Pascal中的case语句。
    下面代码的输出为2 3 default done! , 因为switch语句只负责把程序运行的位置跳转到相应的地方。


    你可以用break语句实现Pascal的case,例如下面的写法就可以让程序输出2 done! :

 

goto语句

    你可以在程序的任何位置插入一个标签:
标签名:
    并在同一函数里使用下面的语句实现无条件跳转:
goto 标签名;
    例如,下面的代码将产生死循环,并输出满屏幕的求爱信息。
 

 

 

CC BY-SA 4.0 C语言速成手册(二):布尔值、条件判断、循环 by Liqueur Librazy is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

3 thoughts on “C语言速成手册(二):布尔值、条件判断、循环

  1. Pingback: C语言速成手册(一):基本数据类型、标准输出、函数 - Dr.Lib - Dr.Librazy

  2. Pingback: C语言速成手册(三):数组、字符串、结构 - Dr.Lib - Dr.Librazy

  3. Pingback: C语言速成手册(四):指针、动态内存分配、标准输入 - Dr.Lib - Dr.Librazy

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据