C语言程序控制()循环

1 循环的基本原理

● 大多数程序都包含循环或迭代。循环是在循环条件为真时,需要计算机重复执行的一组计算机指令。
● 由于事先知道循环将要被执行的次数,所以有时也被称计数控制的循环为确定性循环。
● 由于循环次数事先是未知的,所以有时也称标记控制的循环为非确定型循环。循环体中必须包含有每次循环都要接收输入数据的语句。
● 在计数控制的循环中,需要一个控制变量来记录循环的次数。每当这组计算机指令被重复执行一遍时这个控制变量就要增值(或减值)。当执行完正确的循环次数后,循环结束,计算机继续执行循环语句后面的下一条语句。
● 标记值表示"数据结束"。当所有的正常数据项都已经提供给程序后,就应输入标记值。标记值要与正常的数据项截然不同

2 计数控制的循环

● 计数控制的循环要求定义控制变量(或者循环计数器)的变量名,控制变量的初值,每次循环后修改控制变量的增量值(或减量值),测试控制变量终值的条件(即判断循环是否还要继续进行)

3 for循环语句

● for循环语句能够处理计数控制循环的所有细节。
● 当for循环语句开始执行时,它首先初始化控制变量,然后检查循环继续条件。若条件为真,则执行循环体。控制变量随后被增值,循环再次从检查循环条件开始。这个处理过程将持续下去直到循环继续变为假。
● for语句的一般格式是
for ( ; ; ){
语句;
}
其中,初始化表达式用于对循环控制变量初始化(也可能同时定义它)条件表达式是循环继续条件,增值表达式对循环控制变量进行增值。
● 逗号运算符用于确保对一组表达式的求值,是按照从左向右的顺序,对其中的各个表达式依次求值。整个表达式组的值就等于其中最右边那个表达式的值。
● for语句中的三个表达式是可选的。若将表达式省略,C语言则认为循环继续条件总是为真,这将导致一个无限循环。若循环控制变量的初始化工作已经在循环之前完成了,则可以将初始化表达式省略掉。若对循环控制变量的增值工作是由for循环体中的语句完成的,或者根本就不需要增值,则增值表达式也可以省略。
● for语句中的增值表达式可以用循环体末尾的单独一条语句来替换。
● for语句中用于分隔表达式的两个分号是必需的,不能省略。
4 for语句:注意事项
● 初始化,循环体继续条件及增量操作可以包含算术表达式。
● "增量值"可以是负数(相当于循环计数值递减)。
● 若循环继续条件一开始就为假,则循环体将得不到执行。接着执行的是for语句之后的那条语句。

5 使用for语句的例子

● pow函数用于计算幂值。函数pow(x,y)计算x的y次幂。它接收两个double型的实参,返回一个double型的结果。
● 与float类型一样,double类型也是一种浮点数类型,但是相比float类型的变量,一个double类型的变量能够存储更大数量级和更高精度的数值。
● 使用类似pow这样的函数,就应该在源程序中加入头文件<math.h>。
● 转换说明符%21.2f,表示在21个字符的域宽内,以小数点后面带两位数字的精度,按向右对齐的方式,显示一个浮点数。
● 若想让数据在域宽内左对齐,请在%与域宽之间加上一个减号(–)。

6 switch多重选择语句

● 算法常常包含一系列选择,即通过测试某个变量或表达式的值与事先指定的一组整型常量中的某一个是否相等,然后执行不同的操作,称为多重选择。C提供了switch语句来处理这种情况。
● switch语句由一系列"情况(case)标签",一个可选的"默认"(default)情况以及对应每一种情况需要执行的语句组成。
● getchar函数从键盘读取一个字符并将其作为一个整数返回。
● 字符通常存储在类型为char的变量中。由于字符在计算机中通常是用一个字节的整数来表示的,所以字符也可以存储在任何整型变量中。因此,我们既可以将字符当成整数,也可以将字符当成字符,这取决于实际的应用需求。
● 计算机使用的都是ASCII字符集。
● 可以使用转换说明符c%通过scanf函数来输入字符。
● 赋值表达式作为一个整体也是有值的。这个值就是等号左边那个变量被赋予的值。
● EOF通常被用作一个标记值,是一个在头文件<stdio.h>中定义的整数型符号常量。
● Linux/UNIX系统及其他许多系统中通过组合键(Ctrl+D)来输入EOF标记
● Windows操作系统通过(Ctrl+Z)来输入EOF标记。
● 关键字switch后面是用圆括号括起来的控制表达式。这个控制表达式需要与每一个case标签相比较。一旦相等,就会执行标签后对应的语句。如果找不到匹配,则执行default标签后的语句。
● break语句使得程序控制转到switch语句后面的第一条语句继续执行。break语句防止所有case标签后的对应语句都被执行。
● 每个case标签下可以有一个或多个操作。switch语句与其他控制语句不同的就是:switch语句中一个case标签下的多个操作不需要用一对花括号括起来。
● 将多个case标签罗列在一起表示无论这些case中的哪一个发生匹配,将执行的操作都是一样的。
● switch语录只能用来测试一个整型常量表达式,即任何一个由字符常量和整型常量组成的整型常量的表达式。字符常量通常用单引号括起来。只有用单引号括起来的字符才被认为是字符常量。整数常量就是一个整数值。
● 除了类型int和char之外,C语言还有short,long。所有整数类型还有unsigned(无符号)版本。

7 do…while循环语句

● do…while语句是在执行循环体后,才测试循环继续条件。因此,循环体至少会被执行一次。当do…while循环结束后,计算机将执行while语句后面那条语句。

8 break语句和continue语句

● 在while,for,do…while或者switch语句中,break语句将导致程序立即从这些语句中退出,转去执行这些语句的下一条语句。
● 在while,for,do…while语句中,continue语句将是控制流略过循环体中的剩余语句,开始新的循环。在while,do…while结构中,执行continue语句后,将立即进行循环继续条件的测试。for循环中,执行continue语句后,将执行增量表达式,然后测试循环继续条件。

9 逻辑运算符

● 逻辑运算符可以用来将简单条件组合成复杂条件。
● 与(&&),或(||),非(!)也为逻辑取反。
● 当且仅当两个简单条件都为真时,逻辑与才为真。
● C语言将所有包含有关系运算符,相等运算符或逻辑运算符的表达式都定值为0或1,尽管C将逻辑真的值定为1,但是它也接受任何一个非0值为逻辑真。
● 如果两个简单条件中有一个或两个都为真,那么逻辑与为真。
● 在计算包含运算符&&或||的表达式的值时一旦确定整个表达式的值,计算就会停止。

10 区分相等运算符==和赋值运 算符

● 将 = = 与=混淆使用,不会导致明显的语法错误,但这个错误无疑是致命的。
● 推荐在书写相等语句如, 定 义x等于7,可使用 7 = = x,将常量写在左边。
● 变量名只能出现在赋值运算符的左边,所以常被称为左值(left value )
● 常量只能出现在赋值运算符的右边,所以常被称为右值(right value)
● 左值可以做右值,而右值不可以做左值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章