分支程序设计04 – 零基础入门学习C语言13

第四章:分支程序设计04

让编程改变世界

Change the world by program

if语句的嵌套

当if语句中的执行语句又是if语句时,则构成了if 语句嵌套的情形。

其一般形式可表示如下:

if(表达式)

if语句;

或者为

if(表达式)

if语句;

else

if语句;

在嵌套内的if语句可能又是if-else型的,这将会出现多个if和多个else重叠的情况,这时要特别注意if和else的配对问题。

例如:

if(表达式1)

if(表达式2)

语句1;

else

语句2;

其中的else究竟是与哪一个if配对呢?

宽客网,量化投资,宽客俱乐部

if语句配对

为了避免这种二义性,C语言规定,else 总是与它前面最近的if配对,因此对上述例子应按前一种情况理解。

比较以下两题目:哪一个是运用嵌套方法?

include

void main()

{

    int a,b;

    printf("please input A,B: ");

    scanf("%d%d",&a,&b);

    if( a!=b )

        if( a > b )  

            printf("A>Bn");

        else     

            printf("A[B]

void main()

{

    int a,b;

    printf("please input A,B:      ");

    scanf("%d%d",&a,&b);

    if( a == b )        

        printf("A=Bn");

    else if( a > b )   

        printf("A>Bn");

    else

        printf("A[B]采用嵌套结构实质上是为了进行多分支选择,实际上有三种选择即A>B、A[B]

这种问题用if-else-if语句也可以完成。而且程序更加清晰。

因此,在一般情况下较少使用if语句的嵌套结构。以使程序更便于阅读理解

条件运算符和条件表达式

条件运算符为“?和:”,它是一个三目运算符,即有三个参与运算的量。

由条件运算符组成条件表达式的一般形式为:

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

其求值规则为:如果表达式1的值为真,则以表达式2 的值作为条件表达式的值,否则以表达式2的值作为整个条件表达式的值。

条件表达式通常用于赋值语句之中。

例如条件语句:

if( a > b )

max = a;

else

max = b;

可用条件表达式写为

max = (a>b) ? a : b;

执行该语句的语义是:如a>b为真,则把a赋予max,否则把b 赋予max。

使用条件表达式时,还应注意以下几点:

  1. 条件运算符的运算优先级低于关系运算符和算术运算符,但高于赋值符。

因此

max=(a>b)?a:b

可以去掉括号而写为

max=a>b?a:b

  1. 条件运算符?和:是一对运算符,不能分开单独使用。
  2. 条件运算符的结合方向是自右至左。

例如:

a>b?a:c>d?c:d

应理解为

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

这也就是条件表达式嵌套的情形,即其中的表达式3又是一个条件表达式。

include

void main()

{

    int a,b,max;

    printf("n input two numbers:   ");

    scanf("%d%d",&a,&b);

    printf("max=%d",a>b?a:b);

}

补充:输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。

include

void main ( )                 

{

        char ch;

          scanf("%c", &ch);

           ch=(ch>='A' && ch

switch语句

C语言还提供了另一种用于多分支选择的switch语句, 其一般形式为:

宽客网,量化投资,宽客俱乐部

switch语句

其语义是:计算表达式的值。并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。

如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。

include

void main()

{

    int a;

    printf("input integer number: ");

    scanf("%d",&a);

    switch (a)

    {

        case 1:printf("Mondayn");

        case 2:printf("Tuesdayn");

        case 3:printf("Wednesdayn");

        case 4:printf("Thursdayn");

        case 5:printf("Fridayn");

        case 6:printf("Saturdayn");

        case 7:printf("Sundayn");

        default:printf("errorn");

    }

}

为了避免上述情况,C语言还提供了一种break语句,专用于跳出switch语句,break 语句只有关键字break,没有参数。

请看后边例子……

include

void main()

{

    int a;

    printf("input integer number:    ");

    scanf("%d", &a);

    switch (a)

    {

        case 1:printf("Mondayn"); break;

        case 2:printf("Tuesdayn"); break;

        case 3:printf("Wednesdayn"); break;

        case 4:printf("Thursdayn"); break;

        case 5:printf("Fridayn"); break;

        case 6:printf("Saturdayn"); break;

        case 7:printf("Sundayn"); break;

        default:printf("errorn");

    }

}

在使用switch语句时还应注意以下几点:

  1. 在case后的各常量表达式的值不能相同,否则会出现错误。
  2. 在case后,允许有多个语句,可以不用{}括起来。
  3. 各case和default子句的先后顺序可以变动,而不会影响程序执行结果。
  4. default子句可以省略不用。

视频下载
技术, IT技术, 视频教程, C语言

原文发布于宽客论坛,点击阅读原文


风险提示及免责条款

市场有风险,投资需谨慎。本文不构成个人投资建议,也未考虑到个别用户特殊的投资目标、财务状况或需要。用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部