c语言之选择

1.流程控制的定义:程序执行的顺序

2.流程控制的分类:顺序、选择、循环

如何看懂一个程序?
  1. 流程

 2.每个语句的功能

 3.试数

选择   if语句

         1 最简单的if应用 

                                   格式: if (表达式)

                                             语句;

          2.if的作用范围    只能控制if之后的第一个语句,若想控制多个语句,需要将这些语句用花括号括起来

          3. if.....else.....的用法  

                                   格式:if (表达式)

                                              语句1;

                                           else 语句2;

         4. if.....else if......if.....语句

                                         格式:if (表达式)

                                                  语句1;

                                               else if 语句2;

                                               ............

                                               else  语句n;

                                          解释:因为语句只能执行一个,不可能同时执行,所以整体算一个语句

        5.用法举例(学生成绩分等级) if (90 <= score <= 100)-----数学表达式直接应用到c语言会出现错误(因为左边的结果为逻辑值0或者1,但不管结果为0 还是1,都小于100,所以表达式始终为真,无法判断学生的成绩是不是在90到100之间)----------应该改为  if ( score >= 90 && score <= 100)    .......

          三个数排序(程序)

6.if常出现的问题  

                     1)空语句的问题

                        if (1>2);----------等价于 if (1>2)

                                                                  ;//相当于空语句

                     2)           if (表达式)

                                       语句1;

                                      else 语句2;//是正确的

                                         

                                           if (表达式);

                                              语句1;

                                           else 语句2;//是错误的,以else语句开头

                      3)if.......else if.......else.....中把else删掉 语法不会出错,但逻辑上有漏洞。

                      4)if.......else if.......else.....中最后的  else(表达式n)这样写是不对的,因为有表达式的话就要判断真假,判断的话必须加if,若else(表达式);增加分号,语法上是正确的,它相当于把 (表达式);当成一个无任何意义的语句来执行。

                     5)if.......else if.......else.....中正确的程序是只有一个表达式是成立的,但是若多个表达式都同时成立,也只会执行第一个成立的语句的内容。

 switch语句

switch(表达式)

{

  case 常量表达式1: 语句1;

  case 常量表达式2: 语句2;

  case 常量表达式3: 语句3;

  default:              语句n

}

 1 # include <stdio.h>
 2 
 3  int main (void)
 4 {
 5   int val;
 6   
 7  printf("请输入你要进入的楼层:");
 8  scanf("%d", &val);
 9 
10  switch (val)
11  {
12   case 1:
13            printf("1层开!
");
14            break;
15   case 2:
16            printf("2层开!
");
17            break;
18    case 3:
19            printf("3层开!
");
20            break;
21    case 4:
22            printf("4层开!
");
23            break;
24    default:
25            printf("没有盖到这一层!
");
26            break;
27   
28    }
29 
30   return 0;
31  }

必须有break语句,否则情况可能会同时发生。case1  case2 case3 case4 default 是程序的入口,程序一旦进入,将会从上往下执行,不再进行判断,所以为了体现出选择,必须有break语句终止switch。

在switch语句中的break只是让程序退出switch语句,继续执行下面的语句,在switch中出现continue是错误的,除非里边嵌套了循环。

   

题外话 1.判断一个数字是否是素数

          2.判断一个数字是否是回文数

          3.编程实现求一个十进制数字的二进制形式

          4.求一个数字的每位是奇数的数字取出来组合形成的新数字

          5.求一个数字倒过来的数字

 

                                         

原文地址:https://www.cnblogs.com/wanliqingkong/p/3750554.html