C_流程控制_选择 笔记

选择

1.定义

有些代码执行,也可能代码不执行​,有选择地执行某些代码

 

2.分类

if

switch

 

选择_if

1.if最简单的用法

   if  (表达式)

         语句;

功能:   如果表达式为真,则执行语句;否则不执行

代码举例

 

 1 //​三数排序
 2 #include <stdio.h>
 3 
 4 int main()
 5 {
 6      int a,b,c;
 7      int x;
 8 
 9      printf("输入三个整数:");
10      scanf("%d%d%d",&a,&b,&c);
11 
12      if(a<b)    //若a小于b,a与b的值互换
13      {
14           x=a;
15           a=b;
16           b=x;
17      }
18 
19       if(a<c)    //若a小于c,a与c的值互换
20      {
21           x=a;
22           a=c;
23           c=x;
24      }
25 
26       if(b<c)    //若b小于c,b与c的值互换
27      {
28           x=c;
29           c=b;
30           b=c;
31      }
32 
33      printf("\n%d,%d,%d",a,b,c);
34 
35      return 0;
36 }                

 

 

 

 2.if的范围(重点)

 

if默认的只能控制一条语句的执行,如果想执行多条语句,需用大括号括起来

②控制多条语句的格式

    if  (表达式)

   {

             语句A;

             语句B;

   }

 

3. ifelse…的用法

①格式

   if  (表达式)

           语句A;

   else

           语句B;

②注意,else默认也只能控制一个语句(执行多条语句的方法和if一样),且语句A和语句B不能同时执行

 

4. ifelseifelse的用法

①格式

  if(表达式)

          语句A;

  else if(表达式)

          语句B;

  else

          语句C;

注意:

①如何控制多条语句的执行同if一样

elseif的数量可增加

③语句A,B,C只能执行其中一条

 

5.C语言对于真假的判断

非零是真

零即是假

真用1表示

假用0表示

 

6.程序

①注意: 表达式不可写成"a<x<b"的形式,应写成"x>a&&x<b"的形式

 

 if常见问题解析

1.空语句的问题

    if  (3>2);

等价于

    if  (3>2)

     ;     //这是一个空语句

所以一般情况下if的表达式后面不能加";"

 

 

选择_switch

 

1.格式

 

switch(表达式)

{

  case  常量表达式A

    语句1;

       break;

 

      case  常量表达式B;

      语句2;

      break;

 

   default:

     语句N;

}

 

2.用法

 

①break表示退出。例如若语句1后没有break,则也要执行语句2。即从开始执行到break结束。

 

②default可以出现在任何位置,也可以没有,但建议写在末尾,表示除去case匹配的其他情况。

 

有些书籍中也把switch当做选择结构

 

注意:case标签必须是常量表达式(constant Expression) 只能针对基本数据类型使用switch,这些类型包括intchar等。对于其他类型,则必须使用if语句。

 

(补充)常量表达式(const experssion):是指(1)值不会改变 并且 (2)在编译过程就能得到计算结果的表达式。字面量属于常量表达式,用常量表达式初始化的const对象也是常量表达式。

 

一个对象(或表达式)是不是常量表达式由它的数据类型和初始值共同决定。

 

例子:

 

const int a =1; //常量表达式

 

cosnt int b=a+1; //常量表达式

 

int c=2; //初始值是字面值常量,当c数据类型是普通int

 

const int d=fun(); //fun()值要在运行时得到,d不是字面值常量

 

3.格式举例

 

switch(1+1)
{
    case 1:
    printf("1\n");
    break;

    case 2:
    printf("2\n");
    printf("...");
    break;

    default:
    printf("。。。");
}

 

 

 

输出结果:

 

2

 

...

 

4.程序举例

 1 ​#include<stdio.h>   //微型计算器
 2 
 3 int main(void)
 4 {
 5  float x,y;  
 6  float a;
 7  char b;
 8  
 9  scanf("%f%c%f",&x,&b,&y);  //输入需要运算的两个数及运算符号
10  
11  switch(b)  //判断输入的是哪种符号并进行相应运算
12  {
13     case '+':
14         a=x+y;
15     break;
16     
17     case '-':
18         a=x-y;
19     break;
20     
21     case '*':
22       a=x*y;
23     break;
24     
25     case '/':
26         a=x/y;
27      break;
28  }
29   
30  printf("=%f",a);
31  
32  return 0;
33 
34 }

 

转载于:https://www.cnblogs.com/qinenxi/p/10994939.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值