选择结构的程序设计(上)

本文详细介绍了计算机编程中选择结构和条件判断的重要性,特别是C语言的if语句,通过实例说明了如何使用if语句处理选择结构,包括关系表达式的应用和if语句的不同形式,以及注意事项。
摘要由CSDN通过智能技术生成

目录

1.0、选择结构和条件的判断

1.1、用if语句实现选择结构

1.1.1、用if语句处理选择结构举例

1.1.2、if语句的一般形式


1.0、选择结构和条件的判断

    在我们生活种,往往需要做出许多的选择,例如:是否前往学校、是否完成作业等等,我们将根据已知的条件做出对自己最合理的判断,比如学校是否通知今天放假,如果没有通知那肯定需要前往学校,要不然那不成旷课了吗?

    在计算机中也存在着选择,我们可以设置一些条件,让计算机来选择,满足设立的条件就执行一些语句,否则的话执行另一些语句,C语言有两种选择结构的语句:(1)if语句,用来实现两个分支的选择结构;(2)switch语句,用来实现多分支的选择结构。.

1.1、用if语句实现选择结构

1.1.1、用if语句处理选择结构举例

    if语句中的“表达式”可以是关系表达式、逻辑表达式,甚至是数值表达式。其中最直观、最容易理解的是关系表达式,例如:

    要求得ax^{2}+bx+c=0方程的根,由键盘输入a,b,c。假设a,b,c的值任意,确保b^{2}-4ac\geq 0。需要在程序中设置判断,如果b^{2}-4ac\geq 0,就计算并输出方程的两个实根,如果b^{2}-4ac< 0,就输出“此方程无实根”的信息。

    解题思路:

    编写程序:

#include <stdio.h>

#include <math.h>

int main()

{

  double a,b,c,disc,x1,x2,p,q;

  scanf("%lf%lf%lf",&a,&b,&c);

disc=b*b-4*a*c;

if(disc<0)

printf("此方程无实根\n");

else

 {

    p=-b/(2.0*a);

    q=sqrt(disc)/(2.0*a);

    x1=p+q;

    x2=p-q;

    printf("两个实根为:\nx1=%72.f\nx2=%7.2f\n",x1,x2);

 }

return 0;

}

    在这段程序中第8行if(disc<0),其中“disc<0”就是一个关系表达式。所谓的关系表达式就是两个数值进行比较的式子。

1.1.2、if语句的一般形式

    if语句的一般形式如下:

  if(表达式)语句1

    [else 语句2]

  在上面的if语句的一般形式中,方括号内的部分(即else子句)为可选的,即可有的,也可以没有。

  语句1和语句2可以是一个简单的语句,也可以是一个复合语句,还可以是一个if语句(即在一个if语句中又包含另一个或者多个if语句)。

  根据if语句的一般形式,if语句可以写成不同的形式,最常见的有3种形式:

  (1)if(表达式)   语句1                              (没有else子句部分)

  (2)if(表达式)                                        (有else子句部分)

             语句1

         else 

            语句2

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

         else if(表达式2)语句2

         else if(表达式3)语句3

           ...                          ...

       else if(表达式n)  语句n

       else                         语句n+1

  例如:

    if         (number>600)        cost=0.25;

   else if  (number>500)        cost=0.20;     

   else if  (number>400)        cost=0.15;     

   else if  (number>30)         cost=0.05;   

   else                                   cost=0;

这种形式相当于:

  if (number>600)       

      cost=0.25;

   else

        if  (number>500)       

             cost=0.20;     

       else

             if  (number>400)   

                   cost=0.15;     

             else

                    if  (number>30)         

                          cost=0.05;   

                    else       

                          cost=0;

   写成上面的“if···else if···else if···else if···else”形式更为直观和简介。

   注意:

(1)整个if语句可以写在多行上,也可以写在一行上,如:

   if(x<y) x=1;  else    y=-1;

但是,为了程序的清晰,提倡写成锯齿形式。

 (2)在最常见的有3种形式中的一般形式(3)中“语句1”“语句2”“语句n”等都是if语句中的“内嵌语句”。它们是if语句中的一部分。每个内嵌语句的末尾都应当有分号,因为分号是语句中的必要成分。如:

   if(x<y)

     x=1;          //语句末尾必须有分号

   else

     y=-1;          //语句末尾必须有分号

不能写成:

  if(x<y)x=1 else y=-1;   //“语句1”的末尾缺少分号

  如果无此分号,则出现语法错误。

(3)if语句无论写在几行上,都是一个整体,属于同一个语句。不要误认为if部分是一个语句,else部分是另一个语句。不要一看见分号,就以为是if语句结束了。在系统对if语句编译时,若发现内嵌语句结束(出现分号),还要检查其后有无else,如果无else,就认为整个if语句结束了。

(4)内嵌语句也可以是一个if语句,if的表达式只分真和假来表示是或否,0为假,非零数为真。

  

  • 14
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值