11.3 选择结构的一些坑

C中的语句以分号;结尾(西文),表示当前语句的结束,特殊一点的有两种,一个是空语句,一个是复合语句。

一、空语句就是一个分号;,它什么也不作,可是它是一条语句。

例如:spa

int x=3,y=5;
;  //这个空语句是执行的,但它什么也不干
printf("%d,%d",x,y);

 

二、复合语句是用{ }括起来的多条语句, { }也称为语句块,经常使用在选择结构和循环结构中,{ }总体上看是一条语句,注意{ }的末尾没有分号;

三、选择语句有if和switch,先说if语句

常见的if语句:code

int x=3,y=5,max=0;
if(x>y)
       max=x;
else
       max=y;
printf("max=%d",max);

这个代码求的是x,y的最大值赋值给max,并打印最大值max的值。it

 

注意失误会带来的“坑”

1号坑:if后面必须跟( ),可是右括号的后面没有空语句;

错误写法:class

if(x>y);  //括号后面多写了分号;
    .......
else
    .......

2号坑:注意if()里的=和==号,带来的运算和结果是彻底不同的。

int x=3,y=5;
if(x=y)
       .......
else
       .......

3号坑:if控制的语句若是超过一条语句,必定要用复合语句括起来,不然题目的逻辑就容易出错。下例中,若是没有使用{ },则if控制的是t=x;后面的x=y;y=t;与if没有关系,整个逻辑就变了。

int x=3,y=5,t;
if(x>y)
{
       t=x;
       x=y;
       y=t;
}
相关文章
相关标签/搜索