if 语句

先看一个问题,计算分段函数

y= 3-x (x<=0) ; 

     2/x (x>0) .

求解的流程:

①输入x

②如果x<=0,则y=3-x,否则y=2/x

③输出y的值

显然程序的流程必须由x的值确定,这类程序结构被称为选择结构,也称为分支结构,分支的依据是根据某个变量或表达式的值做出判定,以决定执行哪些语句和跳过哪些语句。分支流程控制可以用if语句实现。

单分支if语句

形式为:

if(表达式)语句

执行单分支选择语句时,首先判断表达式的值,若表达式的值为非0,则执行后面的语句;

                                                                            若表达式后面的值为0,则不执行后面的语句。

双分支if语句

结构形式:

if(表达式)语句1

else 语句2

当表达式的值为非0时,执行语句1;当表达式的值为0时,则执行语句2

多分支if语句

形式为:

if(表达式)语句1

else if(表达式2)语句2

          else

          ……

                  if(表达式n)语句n

                  else语句(n+1)

执行多分支if语句时,如果表达式1 的值为非0,则执行语句1,后面的语句不再执行;(如此类推)  否则执行else后面的语句。

eg:程序

if (x<=-10)

       y=2*x;

else 

    if(x<=0)

         y=2+x;

    else

       if(x<=10)

           y=x-2;

       else

           y=x/10;

if语句的嵌套

在上述三种if语句结构中,当if(表达式)或else后面的语句本身又是一个if语句结构时,就形成了if语句的嵌套结构。

if(表达式1)

     if(表达式1-1)

       语句1-1

     else

       语句1-2

else

    if(表达式2-1)

       语句2-1

    else

        语句2-2

对照前面的双分支选择结构,语句1的位置嵌套了一个双分支结构的if语句,语句2的位置也嵌套了一个双分支结构的if语句。

eg:

if(x<=0)

        if(x<=-10)                        当x<=-10

                y=2*x;

        else                                当-10<x<=0

                y=2+x;

else                                        当x>0走这条分支

        if(x<=10)                        当0<x<10

                y=x-2;

        else                                当x>10

                y=x/10;

在if语句的嵌套结构中不需要对称,只需根据需要决定嵌套的形式。

再写if语句的嵌套结构时,要注意else与if的配对规则:else与同一层最接近它,而又没有其他else语句与之相匹配的if语句配对。如果忽略了else与if配对,就会发生逻辑错误。

为避免这样的错误,可以加上花括号

eg:

if(x<=0)

{

        if(x<=-10)                        当x<=-10

                y=2*x;

        else                                当-10<x<=0

                y=2+x;

}

else

{                                        当x>0走这条分支

        if(x<=10)                        当0<x<10

                y=x-2;

        else                                当x>10

                y=x/10;

}

程序实现:

根据两个数sex和tall分类,如果sex为“F”,当tall大于或等于150时,输出“A”,否则输出“a”;

若sex不为“F”,当tall大于或等于170时,输出“A”,否则输出“a”.

#include <stdio.h>

int main()

{

int tall;

char sex;

scanf("%c%d",&sex,&tall);

if(sex=='F')

{

        if(tall>=150)

                printf("A\n");

        else

                printf("a\n");

else

{

        if(tall>=170)

                printf("A\n");

        else

                printf("a\n");

return 0;

}

注意:输入字符和数字时,之间不要有空格,如F160

  • 23
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值