900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > C语言-判断语句if-else

C语言-判断语句if-else

时间:2019-01-25 10:44:09

相关推荐

C语言-判断语句if-else

C语言中用来表示判断的语句是if-else语句,其一般形式为:

if(表达式)语句1;else语句2;

其流程图如下:

该语句用于实现分支结构,根据表达式的值选择语句1或者语句2中的1条执行。从流程图中可以看到,首先求解表达式,如果表达式的值为“真”,则执行语句1;如果表达式的值为“假”,则执行语句2。 if-else语句常用于二分段函数的计算,例如上篇文章的函数: $$y=f(x) = \begin{cases} \frac{4x}{3} & x \leq 15 \\ 2.5x-10.5 & x > 15 \end{cases} $$ 用if-else语句写的代码段:

/*if-else语句*/if (x <= 15){y = 4*x/3;/* x<=15为真时执行 */}else{y = 2.5*x-10.5; /* x<=15为假(即x>15)时执行*/}

注:1、if后面小括号后不能有分号;例如if (x>3);这个是错误的,分号不能有,应该是if (x>3)

2、if-else语句中的表达式一般为关系表达式,例如if(x>3)或者if(x==2)等,同时也可以使用数字,例如if (1)或者if (0),但是需要注意,除0之外的所有数字都恒为"真",只有if (0)是假。

3、if-else语句中关系表达式中的==不能写赋值符号=,以为赋值在C语言中结果永远为"真",而且编译器不报错,在这种错误比较隐晦,不好查找。例如if(x==2)千万不能写成if(x=2)

if (x==2)语句1; //语句1仅当x==2时才会执行if (x=2)语句2; //语句2无论x之前是什么值都会执行,赋值语句永远为真。

为了避免出现写错的情况,可以改写成如下的语句:即将常数放在左边,因为不能给常数赋值,变量才可以赋值。这样写编译器会报错,有利于避免一些逻辑错误!

if (2==x)语句1;if (2=x) //此时编译器会报错,常数是不能赋值的语句1;报错:[Error] lvalue required as left operand of assignment(左值要是一个变量的左操作数)

3、if-else一般后面都跟着大括号,这样就会执行其中一条分支大括号内的所有语句;如果仅执行一条语句,可以不加大括号,但是此时仅紧接着表达式的第一条语句属于if语句管辖,else和if是一样的;但是else语句前必须有一个与之相对应的if语句,如果前面的if语句后不加大括号,并且跟了不只一条语句,此时编译器会报错。

代码示例1:if (x >= 15){y = 4*x/3;printf("x>=15, y=%d\n", y); /*此时会执行大括号内的所有语句*/}else{y = 2.5*x-10.5;printf("x<15, y=%d\n", y); /*此时会执行大括号内的所有语句*/}代码示例2:if (x >= 15)y = 4*x/3; /*仅这一句是在if语句为假时不执行*/printf("x>=15, y=%d\n", y); /*无论if语句为真为假,词句都会执行*/代码示例3:if (x >= 15)y = 4*x/3; printf("x>=15, y=%d\n", y);else /*这里编译器会报错,由于if语句没接大括号,且中间不只一条语句*/y = 2.5*x-10.5;报错:[Error] 'else' without a previous 'if'(else前需要一个if)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。