一.C语言的循环
通过简单的学习,我们已经初步了解到了在C语言控制语句中主要包括三种循环语句———for、while、do while;
(1)while循环
while 循环的通用形式:
while(expression)
statement
statement部分可以是以分号结尾的简单语句,也可以使用花括号括起来的复合语句。expression的值为真的话,执行statement部分一次再次判断expression。在expression为假之前循环的判断和执行一直重复进行。
*循环语句中的关系运算符和表达式
小于 < 小于或等于 <= 等于 ==
大于或等于>= 大于 > 不等于!=
*什么是真
对C语言而言,表达式为真的值是1表达式为假的值是0。一些C语言程序使用下面的循环结构,由于1为真,所以循环会一直进行。
while(1)
{
......
}
(2)do while 循环
下面是 do while 语句循环的一般形式
do
statement
while(expreession);
statement可以是一条简单语句或复合语句, do while 需要以分号结尾。在 do while 语句中 循环在执行完循环体后才执行测试条件,所以至少执行一次,而 for while 语句则是在执行循环体之前先执行测试条件。 do while 循环适合那些至少要执行一次的循环。
(3)for 循环
for 语句使用3个表达式控制循环过程
for(initialize; test; update)
statement
initialize表达式在执行for循环之前只执行一次,然后对test表达式求值,如果表达式为真或非零,循环执行一次,接着对update表达式求值,再检查test表达式。for语句是一种入口条件循环,即在执行循环之前就决定了是否循环,因此for循环可能执行一次。statement部分是条简单语句或复合语句。
二.分支和跳转
主要包含了 if语句、 if else语句、逻辑运算符、条件运算符等。
(1)if语句
一般形式
if(表达式)
语句
表达式成立(为真),则语句执行,否则(为假)语句不执行。
(2)else 语句
一般形式
if(表达式)
语句1
else
语句2
例如,我们可以使用if else结构来判断一个数字是奇数还是偶数
#include <stdio.h>
int main()
{
int num = 5;
if (num % 2 == 0)
{
printf("这是一个偶数\n");
} else
{
printf("这是一个奇数\n");
}
return 0;
}
(3)逻辑运算符
(4)条件运算符
条件运算符(conditional operator)有时候也称为三元运算符(ternary operator,或者trinary operator),因为它是唯一需要 3 个操作数的运算符,条件表达式的一般形式为:
条件 ? 表达式1 : 表达式2
条件运算操作会首先计算条件,然后根据条件的计算结果,再决定要计算两个表达式中的哪一个,通常用于赋值语句之中。其求值规则为:
如果条件表达式为真,整个表达式的值为表达式1的值。
如果条件表达式为假,整个表达式的值为表达式2的值。
条件运算符代表了在程序流中的条件式跳转,因此,有时候可以与 if-else 语句相互替代。
比如:如果我们希望获得两个数中最大的一个,我们可以使用if语句:
if(a>b)
{
max = a;
}else
{
max = b;
}
上面所描述的if else语句等价于:
max = (a>b)?a:b;
该语句的语义是:如a>b为真,则把a赋予max,否则把b赋予max。