1、if语句

是 选择结构的代表性语句:用来判断给定的条件是否满足,根据判断的结果(真、假)决定执行给出的两种操作之一。

      if语句三种形式:

                1)、if(表达式) 语句     :如果表达式中的条件满足则执行该语句

int x = 6;
if(x>5)
{
  printf("x值>5\n");
   printf("x的值为%d\n",x);
}

                 2)、if(表达式) 语句1 else 语句2:如果表达式的条件满足,则执行语句1,否则执行语句2,语句1和语句2中有且只有一个语句能够被执行。

int x=5,y=6;
if(x>6)
{
printf("x>y是OK的");
printf("x>y是OK的2");
}
else
{
printf("x>y是不OK的");
}

                 3)、if(表达式1) 语句1 

                      else if(表达式2) 语句2

                      else if(表达式3) 语句3

                      else if(表达式4) 语句4

                      ..........

                      else if(表达式m) 语句m

                       else 语句n

如果表达式1成立,则执行语句1;否则表达式2成立,则执行语句2.。。。。

如果表达式m成立,则执行语句m。。。。。

如果表达式1~m都成立,则执行表达式n。【只要有一个条件满足,其他条件就会跳过】

说明:

(1)if语句后面都有表达式,这个算术表达式一般为逻辑表达式或者关系表达式。

if(a ==b &&x==y)    // == &&

printf("OK");

表达式可以扩展一下:如果表达式值为0,那么按“假”处理,如果表达式的值为非0,则按“真处理”。

(2)if语句可以单独使用,但是else语句不能单独使用,必须和if语句配对使用,也就是说,如果出现了else,则必然会对应一个if。

if语句的嵌套:在if语句中又包含一个或者多个if语句,就称为if语句的嵌套。

if()

    if() 语句1

    else 语句2

else 

    if() 语句1

    else 语句2

else和if的配对关系:else总是和他上面的尚未配对的if语句进行配对。

2、条件运算符

条件运算符有三个操作对象,也叫三目运算符,它是C语言中唯一一个三目运算符。

一般形式:

表达式1 ? 表达式2 :表达式3;

执行过程:

条件运算符的优先级比关系运算符低。

条件运算符的结合顺序是从右到左的,所以:

a>b?a:c>d?c:d    ==>  a>b?a:(c>?c:d)

int a =4,b=5,max;max = (a>b)?a:b;  //如果a>b的值为真,则条件表达式取a的值作为整个值,否则取b的值作为整个值。

3、switch语句

多分支选择结构,用的频率相对较高

格式:

switch(表达式)

{

case  常量表达式1:

{

1行或者多行语句;

}

break;

case  常量表达式2:

一行或者多行语句;

break;

.............

case  常量表达式n:

一行或者多行语句;

break;

default:

一行或者多行语句;

break;

}

执行过程:

switch后边的表达式的值若满足任何某个case后面的常量表达式的值,则执行该case后面的一行或者多行语句,一直遇到break停止,跳出整个switch语句。如果所有case条件都不满足,则会执行default中包含的一行或多行语句,然后跳出整个switch语句。

说明:

a、switch后面表达式一般都是整型变量或表达式,其他类型也允许,但是都罕见;

b、每个case后面的常量表达式必须互不相同,不然会出现编译错误;

c、各个case语句之间,case和default语句之间,顺序没有影响,谁在上边,谁在下边,都不所谓。

d、绝对不要忘记break语句,否则后果严重;如果忘记break语句的后果是:如果一个case语句末尾不加break的话,会导致执行完一个case中包含的语句后,流程继续会执行下一个case条件中包含的语句(而不管该case条件是否满足);也就是说,从满足条件的case语句那里作为入口一直执行下去,除非遇到break语句或者整个switch语句执行完毕。

e、case后面可以有多行语句,而且不用加{},系统会自动顺序执行case后面的所有语句,一直到break,当然有人习惯加{}也是可以的。

f、default 可以没有,当没有的时候,那么当所有case条件都不满足,则整个switch都不被执行。

g、多个case语句可以共用一组执行语句。