精华内容
下载资源
问答
  • 选择结构的作用是使程序依照条件而走不同的支路。我们要会选择合适的语句结构。VB支持的选择结构有: If...Then; If...Then...Else;lf...Then...Elseif;Select Case; iif函数1、单分支结构If...Then.首先判断表达式的...

    选择结构的作用是使程序依照条件而走不同的支路。我们要会选择合适的语句结构。

    VB支持的选择结构有: If...Then; If...Then...Else;lf...Then...Elseif;Select Case; iif函数

    1、单分支结构If...Then.

    首先判断表达式的值,如果是True,就执行then后的一条或多条语句,然后选择结构结束。

    如果是False,不执行语句,选择结构结束。继续执行下面语句。

    格式一:
    If 条件表达式 Then 语句

    格式二:
    If 条件表达式 Then

    多条语句

    End If

    2cf937d7767d68251cc67f4efd5b49b6.png

    每日I积累


    说明:表达式:关系表达式、逻辑表达式,算术表达式。表达式值按非零为True,零为False进行判断。

    格式一只能是一句语句或语句间用冒号分隔, 而且必须在一行上书写。

    例:已知两个数x和y,比较它们的大小,使得x大于y.
    If x

    t=x : x=y : y=t

    End If

    2、双分支结构If...Then...Else
    格式一:If 条件表达式 Then 语句

    格式二: If 条件 Then
    [语句块1]

    EIse

    [语句块2]

    End If

    首先判断表达式的值,如果是True,就执行语句块1,然后选择结构结束。
    如果是False,执行语句块2,然后选择结构结束。

    例:用户输入一个整数,判断并输出是奇数/偶数。
    dim a as integer
    a=inputbox("请输入一个整数")

    If a mod 2 = 1 Then msgbox a & "是一个奇数” EIse msgbox a & "是一个偶数”

    eb4234ffbab0a8e781a6df3efdc3c7cc.png

    坚持I巩固

    3、多分支结构lf...Then...Elseif
    建立多个分支流程,并根据条件选择其中一个分支。

    格式:If 条件1 Then
    [语句块1]

    EIself 条件2 Then


    [语句块2] ...

    [EIse

    [语句块n] ]

    End If

    '注: Elself 不能写成 Else If
    不管有几个分支,依次判断,当某条件满足,
    执行相应的语句,其余分支不再执行;
    若条件都不满足,且有Else子句,
    则执行该语句块,否则什么也不执行。
    例:已知变量ch中存放了一个字符,判断该字符是字母字符、数字字符还是其他字符。

    If UCase(ch)>="A" And UCase(ch)<= "Z" Then
    MsgBox(ch+“是字母字符") '考虑大小写字母

    Elself ch>="0" And ch<= "9"Then '数字字符

    MsgBox(ch +"是数字字符")
    Else '除上述字符以外的字符

    MsgBox(ch+“是其他字符")

    End If

    3b8e556f5b8804dc013df635147b115a.png

    目标I脚下

    4、情况语句 Select Case

    用于实现多重选择,作用与If...Then...Else类似,但主要用于只有一个条件,且条件值为离散值的分支选择。
    格式:

    Select Case 测试表达式
    Case 表达式1
    [语句块1]
    Case 表达式2
    [语句块2]
    .....
    Case EIse
    [语句块n]
    End Select
    表达式与测试表达式的类型必须相同,是下面4种形式之一:
    [1].一组用逗号分隔的枚举值: case 2,4,6,11
    [2].表达式1 To 表达式2: case 60 To 100
    [3].Is 关系运算符表达式: case Is < 60
    [4].混合形式: case2,1,4 to 6, is>32
    5、IIf函数: iif(表达式,表达式为真时的函数值,表达式为假时函数值)
    例:将x, y中大的数,放入Tmax变量中: Tmax= iif(x > y, x,y)
    与如下语句等价: If x > y Then Tmax = x Else Tmax = y
    6、条件语句的嵌套:

    注意:每个结构块的清楚划分,首尾对应;每个结构块不能交叉。

    喜欢评论+收藏哦!

    展开全文
  • 3.3 多分支选择结构 多分支选择结构有多种形式,嵌套的if语句和switch语句可以实现多分支结构,嵌套的if语句又包括else-if语句和嵌套的if-else语句。 3.3.1 else-if语句 else-if语句是最常用的多分支选择结构,其...

    3.3 多分支选择结构

    多分支选择结构有多种形式,嵌套的if语句和switch语句可以实现多分支结构,嵌套的if语句又包括else-if语句和嵌套的if-else语句。

    3.3.1 else-if语句

    else-if语句是最常用的多分支选择结构,其语法格式如下:

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

    执行过程是首先判断表达式1,如果为真,则执行语句1,跳过其余的判断语句,结束整个else-if语句,否则依次判断表达式2到表达式n,直到找到满足条件的表达式,每次运行只有一个分支能够执行。如果没有找到满足条件的表达式,则执行最后的else,执行语句n+1。如果没有else语句,则当所有条件都不满足时什么也不执行。其执行流程如图3-3所示。

    image

    【例3-5】 输入学生的成绩,根据成绩打出相应的评定等级。

    学生成绩 等级
    grade>=90 A
    90> grade >=80 B
    80> grade >=70 C
    70> grade >=60 D
    60> grade E

    /*
    程序名:prg3-5.c
    功能:输入学生的成绩,根据成绩打出相应的评定等级
    */
    
    #include <stdio.h>
    int main()
    {
    
       float grade;
       char letter;
    
       printf("Enter the student's grade: ");
       scanf("%f", &grade);
    
       if (grade >= 90.0)letter = 'A';
       else if (grade >= 80.0)letter = 'B';
       else if (grade >= 70.0)letter = 'C';
       else if (grade >= 60.0)letter = 'D';
       else letter = 'E';
    
       printf("The student grade level is :%c", letter);
    
       return 0;
    }
    

    3.3.2 嵌套的if-else语句

    在一个if-else语句内包含一个以上的if-else语句称为嵌套的if-else语句,它的一般形式如下:

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

    当只有else部分嵌入if-else语句时,就是典型的else-if语句,它是最常用的实现多分支的方法。

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

    等价于

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

    在嵌套的if-else语句中,很容易出错的地方是else与if匹配错误,例如:

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

    第一个else与上面两个if中的哪一个匹配呢?为了避免产生二义性,C语言规定,从内层开始,else总是与它上面最近的、未曾匹配过的if匹配。上例中尽管else与第一个if对齐,但它与离它最近的第二个if匹配。
    为了避免产生错误,在if嵌套语句中通常采用缩进的代码书写方式表示不同的层次,使同一层次位于相同的缩进位置,这样书写的程序清晰易读,便于改错。
    【例3-6】 输入x值,计算出相应的y值。函数的公式如下:

    −x      x<0
    
      y=     0           x=0
    
               x+10      x>0
    

    该题可以用三种嵌套方式来实现。
    方式一:在if中嵌套

    #include<stdio.h>
    
    int main()
    {
      int x,y;
     
      printf("Enter x  value: ");
      scanf("%d", &x);
      
      if(x >= 0)  
         if(x > 0)
           y = x + 10;
          else
            y = 0;
      else
           y = -x;
    
      printf("y= %d",y);
    
      return 0;
        
    }
    

    方式二:在else中嵌套

    #include<stdio.h>
    
     int main()
    {
      int x,y;
     
      printf("Enter x  value: ");
      scanf("%d", &x);
      
      if(x > 0)  
         y = x + 10;
      else
          if(x == 0)
             y = 0;
          else
             y = -x;
      
      printf("y= %d",y);
    
      return 0;
        
    }
    

    方式三:用else-if语句实现

    #include<stdio.h>
     int main()
    {
     int x,y;
     
      printf("Enter x  value: ");
      scanf("%d", &x);
      
      if(x > 0)  
         y = x + 10;
      else if(x == 0)
          y = 0;
      else
          y = -x;
      
      printf("y= %d",y);
    
      return 0;
        
    }
    

    3.3.3 switch语句

    在多分支的应用中,有些情况是通过同一表达式的不同取值来决定执行哪一条分支。如果采用else-if语句或嵌套的if结构实现,程序不够简洁。C语言提供了switch语句专门处理此类多路分支的情况。switch语句的一般格式为:

    switch(表达式)
    {
      case 常量表达式1:
         语句1;
         break;
      case 常量表达式2:
         语句2;
         break;
     
          …
      case 常量表达式n:
         语句n;
         break;
      default:
         语句n+1;
    }
    

    其中表达式的值必须是整型、字符型或枚举型,否则会发生编译错误。其执行过程是首先判断switch后面表达式的值,依次与case常量表达式比较,如果与某个case中的常量表达式相等,则执行其后的语句,遇到break语句跳出整个switch结构执行后面的语句。如果表达式的值与任何case常量表达式都不相等,则执行default中的语句。switch结构中的default可以省略,如果省略了default,当表达式的值与任何case中的常量表达式都不相符时,就什么都不执行。
    注意,所有的case后面的语句块后都需要配一个break语句,确保一个特定的case结束。如果省略break语句,则当前匹配的case值之后所有的case值都不再判断,直接执行其后的所有case和default后的语句。
    【例3-7】 实现简单的四则运算,从键盘上输入操作符和两个操作数,计算出运算结果。
    该问题的解决步骤如下:
    1)输入+,−,*,/ 任意一值存入变量。
    2)根据变量的值执行相应的操作。

    /*
    程序名:prg3-7.c
    功能:实现简单的四则运算
    */
    
    #include<stdio.h>
    
    int main()
    {
      float num1,num2,result;
      char operate;
      
      printf("Please enter a operator: ");
      scanf("%c", &operate);        //输入操作符
    
      printf("Please enter two numbers: ");
      scanf("%f,%f", &num1,&num2);    //输入两个操作数
    
      switch(operate)
      {  //对operate做多次判断,根据不同的条件执行不同的语句
         case '+':
           result = num1 + num2;
           printf("%5.2f +%5.2f = %5.2f", num1,num2,result);
           break;                 //break语句是必需的,否则会执行下面的语句
         case '-':
           result = num1 - num2;
           printf("%5.2f -%5.2f = %5.2f", num1,num2,result);
           break;
         case '*':
           result = num1 * num2;
           printf("%5.2f *%5.2f = %5.2f", num1,num2,result);
           break;
         case '/':
           if(num2 != 0)//除数不能为0
           {
                result = num1 / num2;
                printf("%5.2f /%5.2f = %5.2f", num1,num2,result);
           }
           else
             printf("In a division operation,the divisor can not be zero");
           break;
         default:               //输入的不是+,-,*,/时执行
             printf("The operator is invalid");  
      }
      
      return 0;
    }
    展开全文
  • C#-选择结构程序设计

    2011-05-08 17:03:45
    1、选择结构判定条件的构成 2、单分支与双分支选择结构程序设计 3、多分支选择结构程序设计
  • VB单循环技巧,如果要更资源请寻找其他资源上传者!
  • 选择结构程序设计

    2014-03-04 15:47:14
    4.1 选择结构和条件判断 4.2 用if语句实现选择结构 4.3关系运算符和关系表达式 4.4 逻辑运算符和逻辑表达式 4.5 条件运算符和条件表达式 ...4.7 用switch语句实现多分支选择结构 4.8选择结构程序综合举例
  • 目录 一、选择结构和条件判断 二、用if语句实现选择结构 1、用if语句处理选择结构举例 2、if语句的一般形式 三、关系运算符和关系表达式 ...七、用switch语句实现多分支选择结构 八、选择结构程序综合举例...

    目录

    一、选择结构和条件判断

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

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

    2、if语句的一般形式

    三、关系运算符和关系表达式

    1、关系运算符及其优先次序

    2、关系表达式

    四、逻辑运算符和逻辑表达式

    1、逻辑运算符及其优先次序

    2、逻辑表达式

    五、条件运算符和条件表达式

    六、选择结构的嵌套

    七、用switch语句实现多分支选择结构

    八、选择结构程序综合举例


    一、选择结构和条件判断

    C语言有两种选择语句:

    • if语句,用来实现两个分支的选择结构
    • switch语句,用来实现多分支的选择结构

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

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

    ①输入两个实数,按由小到大的顺序输出这两个数。

    解题思路:  只要做一次比较,然后进行一次交换即可。用if语句实现条件判断。

    #include <stdio.h>
    int main()
    {
    	float a,b,t;
    	scanf("%f,%f",&a,&b);
    	if(a>b)
    	{			//将a和b的值互换
    		t=a;
    		a=b;
    		b=t;
    	}
    	printf("%5.2f,%5.2f\n",a,b);
    	return 0;
    }
    

    运行结果:

    ②输入3个数a,b,c,要求按由小到大的顺序输出。

    算法步骤:

    • S1: if a>b,将a和b对换 (交换后,a是a、b中的小者)
    • S2: if a>c,将a和c对换 (交换后,a是a、c中的小者,因此a是三者中最小者)
    • S3: if b>c,将b和c对换 (交换后,b是b、c中的小者,也是三者中次小者)
    • S4: 顺序输出a,b,c
    #include <stdio.h>
    int main()
    {
    	float a,b,c,t;
    	scanf("%f,%f,%f",&a,&b,&c);
    	if(a>b)
    	{	t=a;		//借助变量t,实现变量a和变量b互换值
    		a=b;
    		b=t;
    	}			//互换后,a小于或等于b     
    	if(a>c)
    	{	t=a;		//借助变量t,实现变量a和变量c互换值
    		a=c;
    		c=t;
    	}			//互换后,a小于或等于c       
    	if(b>c)		//还要
    	{	t=b;		//借助变量t,实现变量b和变量c互换值
    		b=c;
    		c=t;
    	}			//互换后,b小于或等于c                       
    	printf("%5.2f,%5.2f,%5.2f\n",a,b,c); 		//顺序输出a,b,c的值
    	return 0;
    }

    运行结果:

    2、if语句的一般形式

    • “表达式”可以是关系表达式、逻辑表达式,甚至是数值表达式
    • 方括号内的部分(即else子句)为可选的,既可以有,也可以没有
    • 语句1和语句2可以是一个简单的语句,也可以是一个复合语句,还可以是另一个if语句

    形式1    没有else子句部分

    形式2    有else子句部分

    形式3    在else部分又嵌套了多层的if语句

    三、关系运算符和关系表达式

    在C语言中,比较符(或称比较运算符)称为关系运算符。所谓“关系运算”就是“比较运算”,将两个数值进行比较,判断其比较的结果是否符合给定的条件

    1、关系运算符及其优先次序

    • 前4种关系运算符的优先级别相同,后2种也相同。前4种高于后2种。
    • 关系运算符的优先级低于算术运算符。
    • 关系运算符的优先级高于赋值运算符。

    c>a+b 等效于c>(a+b)(关系运算符的优先级低于算术运算符)

    a>b==c 等效于(a>b)==c(大于运算符>的优先级高于相等运算符==)

    a==b<c 等效于a==(b<c)(小于运算符<的优先级高于相等运算符==)

    a=b>c 等效于a=(b>c)(关系运算符的优先级高于赋值运算符)

    2、关系表达式

    • 用关系运算符将两个数值或数值表达式连接起来的式子,称为关系表达式。
    • 关系表达式的值是一个逻辑值,即“真”或“假”。
    • 在C的逻辑运算中,以“1”代表“真”,以“0”代表“假”。

    若a=3,b=2,c=1,则:

    d=a>b,由于a>b为真,因此关系表达式a>b的值为1,所以赋值后d的值为1

    f=a>b>c,则f的值为0。因为“>”运算符是自左至右的结合方向,先执行“a>b”得值为1, 再执行关系运算“1>c”,得值0,赋给f,所以f的值为0

    四、逻辑运算符和逻辑表达式

    1、逻辑运算符及其优先次序

    运算符

    含义

    举例

    说明

    !

    逻辑非(NOT)

    !a

    如果a为假,则!a为真;如果a为真,则!a为假

    &&

    逻辑与(AND)

    a && b

    如果a和b都为真,则结果为真,否则为假

    ||

    逻辑或(OR)

    a || b

    如果a和b有一个以上为真,则结果为真,二者都为假时,结果为假

    • “&&”和“‖”是双目运算符,要求有两个运算对象(操作数)
    • “!”是单目运算符,只要有一个运算对象,优先次序:!(非)→&&(与)→‖(或), 即“!”为三者中最高的
    • 逻辑运算符中的“&&”和“‖”低于关系运算符“!”,高于算术运算符,逻辑运算结果不是0就是1,不可能是其他数值。而在逻辑表达式中作为参加逻辑运算的运算对象可以是0(“假”)或任何非0的数值(按“真”对待)

    2、逻辑表达式

    逻辑表达式逻辑运算符连接其他表达式构成表达式,它在程序中常用于表示复杂条件。

    在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。

    例:将数学关系式 20<x≤100用逻辑表达式表示,并计算当x=50时该逻辑表达式的值。

    数学关系式

    20<x≤100

    逻辑表达式

    逻辑表达式求值

    x=50

    描述变量x的取值范围

    x>20,而且x≤100

    因此使用逻辑与运算 && 描述x的取值关系

    (x>20)&&(x<=100)

    x>20&&x<=100

    x>20 

    x<=100 真 

    x>20&&x<=100 

    逻辑表达式值:1

    既然关系表达式和逻辑表达式的值是0和1,而且在判断一个量是否为“真”时,以0代表“假”,以非0代表“真”。那么就可以理解为什么在if语句中表达式可以是任何数值表达式。

    • if (x!=0) 语句1            //括号内的表达式是关系表达式,如果x不等于0,执行语句1
    • if (x>0 && y>0) 语句2    //表达式是逻辑表达式,如果x和y都大于0,执行语句2
    • if (x) 语句3                //表达式是变量,如果x不等于0,则条件判断结果为真,执行语句3
    • if (1) 语句4                //表达式是非0整数, 条件判断结果为真,执行语句4
    • if (0) 语句5                //表达式是整数0,条件判断结果为假,不执行语句5,接着执行下一语句
    • if(x+3.5) 语句6            //表达式是实数表达式,若x+3.5不等于0,则条件判断结果为真,执行语句6

    例:判别用year表示的某一年是否闰年,可以用一个逻辑表达式来表示。闰年的条件是符合下面二者之一: ①能被4整除,但不能被100整除,如2008。②能被400整除,如2000。解:(year % 4 == 0 && year % 100 != 0) ‖ year % 400 == 0

    五、条件运算符和条件表达式

    条件表达式的一般格式:

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

    条件运算符由两个符号(?和:)组成,必须一起使用。要求有3个操作对象,称为三目(元)运算符,它是C语言中唯一的一个三目运算符。

    条件运算符的执行顺序: 先求解表达式1,若为非0(真)则求解表达式2,此时表达式2的值就作为整个条件表达式的值。若表达式1的值为0(假),则求解表达式3,表达式3的值就是整个条件表达式的值。

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

    解题思路:  用条件表达式来处理,当字母是大写时,转换成小写字母,否则不转换。

    #include <stdio.h>
    int main()
    {
    	char ch;
    	scanf("%c",&ch);
    	ch=(ch>='A'&&ch<='Z')?(ch+32):ch;
    	printf("%c\n",ch);
    	return 0;
    }

    运行结果: 

    程序分析:条件表达式“(ch>='A'&&ch<='Z')?(ch+32):ch”的作用是: 如果字符变量ch的值为大写字母,则条件表达式的值为(ch+32),即相应的小写字母,32是小写字母和大写字母ASCII的差值。如果ch的值不是大写字母,则条件表达式的值为ch,即不进行转换。

    六、选择结构的嵌套

    注意:if与else的配对关系——else总是与它上面的最近的未配对的if配对

    如果if与else的数目不一样,为实现程序设计者的思想,可以加花括号来确定配对关系。

    例:输入一个学生两门课的成绩,若平均成绩小于0,则显示“数据错误!”;否则,若平均成绩不低于90,则显示“优等生”,否则显示“加油!”。

    算法设计:根据平均成绩的计算结果,将有两个大的分支:分支一:平均成绩小于0,显示“数据错误!”;分支二:平均成绩不小于0,进一步进行小分支处理。  

    #include<stdio.h>
    int main()
    {
    	int a1,a2,ave;
    	printf("输入两门课的成绩:");
    	scanf("%d,%d",&a1,&a2);
    	ave=(a1+a2)/2;
          if(ave<0)
               printf("数据错误!\n");
          else
               if(ave>=90) 
                   printf("优等生!\n");    
               else
                   printf("要加油啊!\n");  
          return 0; 
    } 

    运行结果:

    七、用switch语句实现多分支选择结构

    switch语句的一般形式:

    说明:

    (1) 括号内的“表达式”,其值的类型应为整数类型(包括字符型)

    (2) 花括号内是一个复合语句,内包含多个以关键字case开头的语句行和最多一个以default开头的行。case后面跟一个常量(或常量表达式),它们和default都是起标号作用,用来标志一个位置。执行switch语句时,先计算switch后面的“表达式”的值,然后将它与各case标号比较,如果与某一个case标号中的常量相同,流程就转到此case标号后面的语句。如果没有与switch表达式相匹配的case常量,流程转去执行default标号后面的语句。

    (3) 可以没有default标号,此时如果没有与switch表达式相匹配的case常量,则不执行任何语句。

    (4) 各个case标号出现次序不影响执行结果。

    (5) 每一个case常量必须互不相同;否则就会出现互相矛盾的现象。

    (6) case标号只起标记的作用。在执行switch语句时,根据switch表达式的值找到匹配的入口标号,在执行完一个case标号后面的语句后,就从此标号开始执行下去,不再进行判断。因此,一般情况下,在执行一个case子句后,应当用break语句使流程跳出switch结构。最后一个case子句(今为default子句)中可不加break语句。

    (7) 在case子句中虽然包含了一个以上执行语句,但可以不必用花括号括起来,会自动顺序执行本case标号后面所有的语句。当然加上花括号也可以。

    (8) 多个case标号可以共用一组执行语句。

    例:

    要求按照考试成绩的等级输出百分制分数段,A等为85分以上,B等为70~84分,C等为60~69分,D等为 60分以下。成绩的等级由键盘输入。

    #include <stdio.h>
    int main()
    {
    	char grade;
    	scanf("%c",&grade);
    	printf("Your score:");
    	switch(grade)
    	{
    	case 'A': printf("85~100\n");break;
    	case 'B': printf("70~84\n");break;
    	case 'C': printf("60~69\n");break;
    	case 'D': printf("<60\n");break;    
    	default:  printf("enter data error!\n");
    	}
    	return 0;
    }

    运行结果:

    用switch语句处理菜单命令。在许多应用程序中,用菜单对流程进行控制,例如从键盘输入一个′A′或′a′字符,就会执行A操作,输入一个′B′或′b′字符,就会执行B操作。

    #include <stdio.h>
    
    void action1(int x,int y)     //执行加法的函数
    {
      printf("x+y=%d\n",x+y);
    
    }
    
    void action2(int x,int y)     //执行乘法的函数
    {
      printf("x*y=%d\n",x*y);
    }
    
    int main()
    { 
      char ch;
      int a=15,b=23;
      ch=getchar();
      switch(ch)
      { 
    	 case 'a':
         case 'A': action1(a,b);break;       //调用action1函数,执行A操作
         case 'b':
         case 'B': action2(a,b);break;       //调用action2函数,执行B操作
    
    	 default:  putchar('\a');
        }
      return 0;
     }

    运行结果:

    八、选择结构程序综合举例

    1、写一程序,判断某一年是否为闰年。

    程序1:

    #include <stdio.h>
    int main()
    {
      int year,leap;
      scanf("%d",&year);
      if (year%4==0)
      {
        if(year%100==0)
    	{
          if(year%400==0)
             leap=1;
          else
             leap=0;
    	}
        else
          leap=1;
      }
      else
        leap=0;
      if (leap)
         printf("%d is ",year);
      else
         printf("%d is not ",year);
      printf("a leap year.\n");
      return 0;
    }

    程序2:可将程序1中7~20行代码改写成以下更加简洁的语句

    if(year%4!=0)
        leap=0;
      else if (year%100!=0)
        leap=1;
      else if(year%400!=0)
        leap=0;
      else
    	  leap=1;

    程序3:可以用一个逻辑表达式包含所有的闰年条件,将上述if语句用下面的if语句代替

    if((year%4==0 && year%100!=0) || (year%400==0))
    	  leap=1;
    	else
    	  leap=0;
    

    程序4:可以在程序中使用C 99 提供的逻辑变量和逻辑常量true和false,把leap定义为逻辑变量,它的值只能是true(即1)或false(即0)。[注意头部要加上#include <stdbool.h>]【注意有些编译系统不允许使用逻辑型变量bool】

    有些C编译系统(包括VC++ 6.0)还未完全实现C 99标准,可将1、2行改为#include<iostream>作为C++程序来运行

    #include <stdio.h>  
    #include <stdbool.h>
    int main()
    {
      int year;
      bool leap;
      scanf("%d",&year);
      if (year%4==0)
      {
        if(year%100==0)
    	{
          if(year%400==0)
             leap=true;
          else
             leap=false;
    	}
        else
          leap=true;
      }
      else
        leap=false;
      if (leap == true)
         printf("%d is ",year);
      else
         printf("%d is not ",year);
      printf("a leap year.\n");
      return 0;
    }

    运行结果:

    2、求ax²+bx+c=0方程的解。

    #include <stdio.h>
    #include <math.h>
    int main()
    {
      double a,b,c,disc,x1,x2,realpart,imagpart;
      scanf("%lf,%lf,%lf",&a,&b,&c);
      printf("The equation ");
      if(fabs(a)<=1e-6)    //a的绝对值是否小于一个很小的数(例如10^-6),若小于,就认为其为0
        printf("is not a quadratic\n");
      else
      {
        disc=b*b-4*a*c;
        if(fabs(disc)<=1e-6)    // 相当于disc=0
          printf("has two equal roots:%8.4f\n",-b/(2*a));
        else
          if(disc>1e-6)         // 相当于disc>0
    	  {
           x1=(-b+sqrt(disc))/(2*a);
           x2=(-b-sqrt(disc))/(2*a);
           printf("has distinct real roots:%8.4f and %8.4f\n",x1,x2);
    	  }
          else
    	  {
           realpart=-b/(2*a);
           imagpart=sqrt(-disc)/(2*a);
           printf(" has complex roots:\n");
           printf("%8.4f+%8.4fi\n",realpart,imagpart);
           printf("%8.4f-%8.4fi\n",realpart,imagpart);
    	  }
      }
      return 0;
    }  

    运行结果:

    3、运输公司对用户计算运输费用。路程(s km)越远,每吨·千米运费越低。标准如下:  

    s<250 没有折扣
    250≤s< 500 2%折扣

    500≤s< 1000

    5%折扣
    1000≤s< 2000 8%折扣
    2000≤s< 3000 10%折扣
    3000≤s 15%折扣
    #include <stdio.h>
    int main()
    { 
       int c,s;
       float p,w,d,f;
       printf("please enter price,weight,discount:");      // 提示输入的数据
       scanf("%f,%f,%d",&p,&w,&s);                 // 输入单价、重量、距离 
       if(s>=3000)  
    	   c=12;                                   // 3000km以上为同一折扣
       else        
    	   c=s/250;                                // 3000km以下各段折扣不同,c的值不相同
       switch(c)
       {
         case 0:   d=0; break;                     // c=0,代表250km以下,折扣d=0
         case 1:   d=2; break;                     // c=1,代表250到500km以下,折扣d=2%
         case 2: 
         case 3:   d=5; break;                     // c=2和3,代表500到1000km以下,折扣d=5% 
         case 4: 
         case 5:      
         case 6:      
         case 7:   d=8; break;                     // c=4-7,代表1000到2000km以下,折扣d=8%    
         case 8:  
         case 9:    
         case 10:   
         case 11:  d=10; break;                    // c=8-11,代表2000KM到3000km以下,折扣d=10% 
         case 12:  d=15; break;                    // c12,代表3000km以上,折扣d=15% 
       }
       f = p * w * s * (1 - d / 100);              // 计算总运费
       printf("freight=%10.2f\n",f);               // 输出总运费,取两位小数
       return 0;
    }

    运行结果:

     

    展开全文
  • 1 条件判断 1.1 条件判断的含义 1.2 关系运算符和关系表达式 1.3 逻辑运算符和逻辑表达式 2 用if语句实现选择结构 2.1 用if语句实现选择...3 利用switch语句实现多分支选择结构 4 程序综合举例 5 提高部分 6 小结 ...

    1 条件判断

    1.1 条件判断的含义

    条件判断的结果是一个逻辑值:“是”或“否”,在计算机语言中用“真”和“假”来表示“是”或“否”。

    1.2 关系运算符和关系表达式

    用来比较大小的符号称为关系运算符。

    1.2.1 关系运算符及其优先次序

    C语言提供6种关系运算符:
    < 小于
    <= 小于或等于
    >大于
    >=大于或等于
    = =等于
    !=不等于
    前4种关系运算符的优先级别相同,后两种也相同。前4种高于后两种。例如:“>”优先于“==”,“>”和"<"优先级相同。
    关系运算符优先级低于算术运算符,关系运算符优先级高于赋值运算符。

    1.2.2 关系表达式

    用关系运算符将两个表达式(算术表达式、逻辑表达式、赋值表达式、字符表达式)连接起来的式子,称为关系表达式。
    对于关系运算的结构,用数值“1”代表“真”,用数值“0”代表“假”。

    1.3 逻辑运算符和逻辑表达式

    需要用两个(或多个表达式)和逻辑运算符。

    1.3.1 逻辑运算符及其优先次序

    C语言提供3种逻辑运算符:
    &&逻辑与 and
    ||逻辑或 or

    ! 逻辑非 not
    “&&”和"||"是双目(元)运算符,要求在运算符的两侧各有一个运算对象,如a>b || x>y。
    “!”是一目(元)运算符,只要求在它的右侧有一个运算量,如!a。

    逻辑运算的真值表
    在这里插入图片描述
    优先次序:
    在这里插入图片描述

    1.3.2 逻辑表达式

    用逻辑运算符将关系表达式或逻辑量连接起来的式子就是逻辑表达式。
    判断一个量2是否为“真”时,以“0”表示假,以非0代表“真”,即一个非零的数值认作为“真”。
    逻辑运算的结果不是0就是1。
    如:a=4 a的值为非0,被认为“真”。
    逻辑运算的真值表
    在这里插入图片描述

    2 用if语句实现选择结构

    2.1 if语句一般形式

    2.1.1 if(表达式) 语句
    例如:
    if(x>y) printf("%d",x);
    在这里插入图片描述

    2.1.2 if(表达式) 语句1 else 语句2
    例如;
    if(x>y)
    printf("%d",x);
    else
    printf("%d",y);

    在这里插入图片描述

    2.2 if语句使用的说明

    1.if后的表达式,一般为逻辑表达式或关系表达式,也可以是任意数值类型(整型、实型、字符型、指针型数据)。例如:

    在这里插入图片描述
    2.else子句不能作为语句单独使用,必须与if配对。else总是与它上面最近未配对的if配对
    3.if和else后的操作语句,可以有多个操作句,此时用“{}”将几个语句括起来成为一个复合语句
    在这里插入图片描述

    2.3 使用嵌套if语句实现多层条件判断

    if (表达式1) 语句1
    else if (表达式2) 语句2
    else if (表达式2) 语句3
    .

    else if (表达式m) 语句m
    else 语句n

    例如:
    在这里插入图片描述
    改进:
    在这里插入图片描述

    3 利用switch语句实现多分支选择结构

    switch(表达式)
    {
    case 常量表达式1: 语句1
    case 常量表达式2: 语句2

    case 常量表达式n: 语句n
    default: 语句n+1
    }
    例如:按照考试成绩的等级输出百分之分数段
    在这里插入图片描述
    说明:
    1.switch后面括号内的“表达式”,可以是数值型或字符型型数据。
    2.表达式的值与某一个case后面的常量表达式的值相等时,就执行case后面的语句,若所有的常量表达式的值都没用与表达式匹配,就执行default后面的语句。
    3. 每一个case的厂里了表达式的值必须互不相同。
    4. 各个case和default的出现次序不影响执行结果。
    5. 若执行完一个case后面的语句,流程控制转移下一个case继续执行。
    6. 终止switch语句的执行,可以用一个break语句来达到此目的。例如:
    在这里插入图片描述
    在这里插入图片描述

    4 程序综合举例

    4.1 判断某一年是否闰年。
    闰年的条件应符合下面二者之一:
    一,能被4整除,但不能被100整除。
    二,能被4整除,又能被400整除。
    在这里插入图片描述

    5 提高部分

    5.1 用条件表达式实现简单的选择结构

    一般形式:
    表达式1?表达式2:表达式3
    其中“?:”是条件运算符。要求有3个运算对象,称为三目(元)运算符。
    条件表达式是一个选择结构。
    运算流程:
    在这里插入图片描述
    表达式2,表达式3不仅可以是数值表达式,还可以是赋值表达式或函数表达式。如:
    在这里插入图片描述

    表达式1的类型可以与表达式2和表达式3的类型不同。如:
    在这里插入图片描述
    若整型变量x为0,则条件表达式的值为‘b’。
    优先级
    在这里插入图片描述
    条件运算符的结合方向为“自右向左”。如:
    在这里插入图片描述
    等价于
    在这里插入图片描述

    5.2 在程序中使用条件表达式

    输入一个字符,判断它是是否大写字符,如果是,将他转换成小写字符;如果不是,不转换,直接输出。
    在这里插入图片描述

    6 小结

    算术运算符、关系运算符、逻辑运算符以及算术表达式、关系表达式、逻辑表示式。以1代表真,以0代表假。
    用if语句实现选择结构,用switch语句实现多分支选择结构。case 常量表达式只起语句标号作用。
    break语句。
    条件运算符。

    展开全文
  • 第4章 选择结构程序设计4.1 选择结构和条件判断4.2 用if语句实现选择结构4.3关系运算符和关系表达式4.4 逻辑运算符和逻辑表达式4.5 条件运算符和条件表达式4.6 选择结构的嵌套4.7 用switch语句实现多分支选择结构4.8...
  • switch语句,用来实现多分支的结构选择 5.1 if语句 用if语句可以构成分支结构。它根据给定的条件进行判断,以决定执行某个分支程序段。C语言的if语句有三种基本形式。选择结构和条件判断。 If语句的三种形式: 形式...
  • 设计程序去指导计算机工作,来实现我们的需求。从生活映射到程序中。程序中存在对应的逻辑工作方式。关键在于条件的设立输入两个数值,比较数值大小,显示结果if......else 用于两路分支的代码,多于3路在else后面再...
  • 第四章 选择结构程序设计 华侨大学计算机科学与技术学院 刘韶涛副教授...第四章 选择结构程序设计 内容提要 C语言判断语句 C语言if选择结构 C语言中的条件运算符 多分支选择语句 switchcase; ; ; ; ; ; ; ; ; ; ; ; ; ;
  • 圳 职 业 技 术 学 院Shenzhen Polytechnic 三单元选择结构程序设计 教学内容 选择结构程序设 教学目标 应知 关系表达式与逻辑表达式 if 语句及条件表达式 switch 语句 应会 关系表达式与逻辑表达式的计算 在程序中...
  • 实验三 选择结构程序设计 一实验目的 1 掌握建立和执行 M 文件的方法 2 掌握利用 if 语句实现选择结构的方法 3 掌握利用 switch 语句实现多分支选择结构的方法 4 掌握 try 语句的使用 二实验内容 1 求分段函数的值用...
  • 实验三 选择结构程序设计 一实验目的 1 掌握建立和执行 M 文件的方法 2 掌握利用 if 语句实现选择结构的方法 3 掌握利用 switch 语句实现多分支选择结构的方法 4 掌握 try 语句的使用 二实验内容 1 求分段函数的值用...
  • 实验三 选择结构程序设计 一实验目的 1 掌握建立和执行 M 文件的方法 2 掌握利用 if 语句实现选择结构的方法 3 掌握利用 switch 语句实现多分支选择结构的方法 4 掌握 try 语句的使用 二实验内容 1 求分段函数的值用...
  • matlab选择结构程序设计答案 精品文档 精品文档 收集于网络如有侵权请联系管理员删除 收集于网络如有侵权请联系管理员删除 精品文档 收集于网络如有侵权请联系管理员删除 实验三 选择结构程序设计 实验目的 掌握建立...
  • 《Python实验3选择结构程序设计》由会员分享,可在线阅读,更相关《Python实验3选择结构程序设计(2页珍藏版)》请在人人文库网上搜索。1、实验3 选择结构程序设计(续)【实验目的】 1掌握分支条件语句的使用。2掌握...
  • 实验三选择结构程序设计一、实验学时2学时二、实验目的(一)掌握C语言关系表达式和逻辑表达式的运算和使用;(二)正确使用条件控制语句(if语句、switch语句)进行选择结构程序设计。三、预习要求(一)关系运算符和关系...
  • 04--选择结构程序设计

    2020-03-28 17:25:37
    选择结构程序设计 C语言有两种选择语句—if 语句和switch语句 if 语句用来实现两个分支的选择结构 switch语句用来实现多分支的选择语句 if语句 1、if语句的一般形式: if (表达式) 语句1 else 语句2 ...
  • 说明本例要求判别键盘输入字符的类别可以根据输入字符的ASCII码来判别类型由ASCII码表可知...这是一个多分支选择的问题用if-else-if语句编程判断输入字符ASCII码所在的范围分别给出不同的输出例如输入为g输出显示This
  • switch语句,用来实现多分支选择结构 二、用if语句实现选择结构 1、用if语句处理选择结构举例 ①输入两个实数,按由小到大的顺序输出这两个数。 解题思路: 只要做一次比较,然后进行一次交换即可。用if语句实现...
  • 程序不可能完全的顺序去执行,有时候我们会使用选择、循环结构去设计,本章记录汇编中的选择结构程序设计,也就是学习条件转移指令。 条件转移指令就是根据测试的条件是否满足,如果满足,则进行转移,条件测试指令...
  • 大多数程序中都会包含选择结构,它的作用是根据制定的条件满足与否,决定是否执行给定的操作或在两个或个给定操作中选择其一,在选择结构中包含C语言的if语句、条件运算符、C语言带的switch语句、选择程序设计 ...
  • 第三节switch语句 C语言提供了switch多路选择语句格式如下 switch(表达式) { case 常量表达式1 : 语句组1 ;... } 分析多分支语句的执行过程 执行完一个case语句后面的语句后流程控制转移到下一个ca
  • 4.1 选择结构和条件判断 4.2 用if语句实现选择结构 4.3关系运算符和关系表达式 4.4 逻辑运算符和逻辑表达式 4.5 条件运算符和条件表达式 ...4.7 用switch语句实现多分支选择结构 4.8选择结构程序综合举例
  • 熟练使用多重 if 结构 熟练使用嵌套 if 结构 熟练使用 switch 结构 理解条件运算符的用法 1、熟练掌握switch结构的应用 2、培养多分支选择结构程序设计方法
  • c程序设计第四章 选择结构程序设计 关系运算符 逻辑运算符 If 语句 If – else 语句 多分支If 语句 switch 语句 条件运算符

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 475
精华内容 190
关键字:

多分支选择结构程序设计