二、分支结构

1. 前期准备——如何判断真假

  • 在 C 语言中,表达式的值为 0,表示逻辑“假”(false),表达式的值为非 0,表示逻辑“真”(true)。
  • 常见的运算符
    1. 算术运算符:$ +, -, *, /, %, ++, -- $
    2. 关系运算符:$ ==, !=, >, <, >=, <= $
    3. 逻辑运算符:&&, ||, !
    4. 位运算符:&, |, ^
    5. 赋值运算符:$ = $

2. if 语句

  • if 语句有三种方式:

    1. 单分支结构

      • if(条件表达式){
            语句1;
            语句2;
            ...
        }
      • 功能:如果条件表达式的值为真,即条件成立,花括号中的语句将被顺序执行。否则,花括号中的所有语句将被忽略(不被执行),程序将按顺序从整个选择结构之后的下一条语句继续执行。执行流程如图所示。

        *说明:格式中的“条件表达式”必须用圆括号括起来。

    • 示例代码

      #include <cstdio>
      int main() {
          int a = 0;
          printf("请输入小于100的整数:\n");
          scanf("%d", &a);
          if (a >= 100) {
              printf("不是说好的小于100吗?你是个大骗子!!!\n");
          }
          printf("再见!\n");
          return 0;
      }
    1. 双分支结构

      • 格式

        if (条件表达式) {//操作1
            语句1;
            语句2;
            ...
        } else {//操作2
            语句3;
            语句4;
            ...
        }
        语句5;
      • 如果(条件表达式)的值为“真”,即条件成立,则执行语句1、语句2……,执行完后,从整个if-else结构的后的语句5继续向下执行;
      • 如果(条件表达式)的值为“假”,即条件不成立,那么跳过if后面花括号的所有语句,选择else后面花括号的所有语句,顺序执行 ,执行完后从整个if-else结构后的语句5继续向下执行;
      • 也就是说if-else语句总是根据(条件表达式)的结果,选择对应分支中的语句执行,执行完以后,整个if-else就算执行完了。执行流程如图所示:

      • 示例代码

        #include <cstdio>
        int main() {
            int score = 0;
            printf("请输入你的考试分数:\n");
            scanf("%d", &score);
            if (score >= 60) {
                printf("恭喜你,及格啦!\n");
            } else {
               printf("你太弱了!\n");
            }
            return 0;
        }
    2. 多分支结构
      • 格式

        if (条件表达式1) {
            语句1;
            语句2;
            ...
        } else if (条件表达式2){
            语句3;
            语句4;
            ...
        } else {
            语句5;
            语句6;
            ...
        }
        语句7;
      • 如果(条件表达式1)的值为“真”,即条件成立,则执行语句1、语句2……,执行完后,从语句7继续向下执行;
      • 如果(条件表达式1)为“假”,程序将跳过第一个花括号中的所有语句,进而判断(条件表达式2),如果值为“真”,即条件成立,则执行语句3、语句4……,执行完后,从语句7继续向下执行;
      • 如果两个条件表达式的值都为“假”,则程序只执行语句5、语句6……执行完以后,从语句7继续向下执行。执行流程如图所示:

    • 示例代码

      #include <cstdio>
      int main() {
          int a = 0;
          printf("请输入一个整数:\n");
          scanf("%d", &a);
          if (a > 0) {
              printf("这是个正数\n");
          } else if (a == 0) {
           printf("这是0\n");
          } else {
           printf("这是负数\n");
          }
          return 0;
      }

3. switch...case语句

  • 应用条件语句可以很方便地使程序实现分支,但是出现分支比较多的时候,虽然可以用嵌套的if语句来解决,但是程序结构会显得复杂,其至凌乱。为方便实现多情况选择,C++提供了一种switch开关语句。
  • 格式选择类语句包括 if语句和 switch 语句,用它们来解决实际应用中按不同的情况进行不同处理的问题。如根据学生的成绩,对学生做出不同的等第评价。
    switch (表达式) {
      case 常量表达式1:
          语句序列1;
          break;
      case 常量表达式2:
          语句序列2;
          break;
      ……
      case 常量表达式n:
          语句序列n;
          break;
      default:
          语句序列n+1;
      }
  • 该语句中可以使用一次或多次case标号,但只能使用一次default标号,或者省略整个default部分;多个case标号也允许使用在同一个语句序列的前面;每个语句标号有保留字case和后面的常量表达式及冒号组成,每个常量表达式通常为字面常量,如常数或字符,一般情况下,每个case语句中不允许定义变量
  • switch语句执行过程分为以下3步描述:
    1. 计算出switch后面圆括号内表达式的值,假定为M,若它不是整型,系统将自动舍去其小数部分,只取其整数部分作为结果值
    2. 依次计算出每个case后常量表达式的值,假定它们为M1、M2、…,同样若它们的值不是整型,则自动转换为整型。
    3. 让M依次同M1、M2、…进行比较,一旦遇到M与某个值相等,则就从对应标号的语句开始执行;在碰不到相等的情况下,若存在default子句,则就执行其冒号后面的语句序列,否则不执行任何操作;当执行到复合语句最后的右花括号时就结束整个switch语句的执行。
  • 在使用switch语句时,还应注意以下几点:
    1. case语句后的各常量表达式的值不能相同,否则会出现错误码。
    2. 每个case或default后,可以包含多条语句,不需要使用“{”和“}”括起来。
    3. 各case和default子句的先后顺序可以变动,这不会影响程序执行结果。
    4. default子句可以省略,default后面的语句末尾可以不必写break。
  • 示例代码
    • 实现一个最简单的计算器支持+,-,\*,/四种运算。输入只有一行:两个参加运算的数和一个操作符(+,-,\*,/)。
    • 输出运算表达式的结果。考虑下面两种情况:
      1. 如果出现除数为0的情况,则输出:Divided by zero!
      2. 如果出现无效的操作符(即不为+,-,*,/之一),则输出:Invalid operator!
      // 以下代码为了节约纸张,多条语句放在了一行,同学们请按照上面的格式书写
      #include <cstdio>
      int main() {
          float a, b, ans;
          char op;
          scanf("%f %f %c", &a, &b, &op);
          switch (op) {
              case '+': printf("%f\n", a + b); break;
              case '-': printf("%f\n", a - b); break;
              case '*': printf("%f\n", a * b); break;
              case '/':
                  if (b != 0) {
                      printf("%f\n", a / b);
                  } else {
                      printf("Divided by zero!");
                  }
                  break;
              default: printf("Invalid operator!"); break;
          }
      }

      上面的示例代码同时使用了分支结构的嵌套,从而实现更为复杂的分支结构

原文地址:https://www.cnblogs.com/hbhszxyb/p/12232064.html

时间: 2024-10-06 00:27:00

二、分支结构的相关文章

C语言之分支结构 if(一)

一 程序的三种基本结构 顺序结构:程序从上往下依次执行,这个叫顺序结构 分支结构:有选择的执行或者不执行某段代码 循环结构:重复的执行某段代码 二 分支结构之if 最简单的俩种用法 (tips: if语句后面的大括号可以省略:如果省略:那么这个if语句只能管理离它最近的那条语句并且,这条语句,不能是声明变量的语句) 1). 语法: if(表达式){ 语句块; } 语义:判断小括号里的表达式是否为真,如果为真,则执行语句块,否则不执行语句块 2). 语法:if(表达式){ 语句块1; }else{

java------运算符,分支结构,循环

一.运算符和表达式 1)算术: +   -   *   /   %   ++   -- 2)关系:>   <   >=   <=   ==   != 3)逻辑:&&   ||   ! 4)赋值:=   +=   -=   *=   /=   %= 5)字符串连接:+ 6)三目/条件:boolean?数1:数2 二.分支结构 1)if 2)if...else 3)if...else if 4)switch...case 优点: 结构清晰,效率高 缺点: 整数,相等 b

java基础知识-----运算符表达式和分支结构

一.运算符1.算术运算符:+,-,,/,%,++,--2.关系运算符:>,<,>=,<=,==,!=,3.逻辑运算符:&&,||,!,4.赋值运算符:=,+=,-=,=,/=,%=5.字符串连接符:+6.三目/条件运算符:boolean?数1:数2注意点:1自增运算符单独使用,表示结果加或者减一自增运算符运算时使用分为2种情况,如果符号在前则先自增或自减再进行外部运算,如果符号在后则先进行外部运算再进行自增自减运算.2.&&(且),当两边同真的时候才

Python-程序的分支结构

---恢复内容开始--- 1.单分支结构 if  <条件>: <语句块> 2.二分支结构 if <条件>:                     紧凑形式,适用于简单表达式的二分支结构        guess =eval(input()) <语句块1>                  <表达式1>if<条件> else <表达式2>                     print("猜{}了"

字符串的格式化、程序的分支结构

一.字符串的格式化 1.字符串通过format()方法进行格式化处理. 2.format()方法格式控制 3.左对齐.右对齐.居中 >>> s = 'PYTHON' #左对齐 >>> '{:30}'.format(s) 'PYTHON ' #右对齐 >>> '{:>30}'.format(s) '                             PYTHON' #居中且使用*填充 >>> '{:*^30}'.format

实验三 分支结构程序设计

实验三  分支结构程序设计 班级:物流191                        姓名:梁晓芹                   学号:3190505138 指导老师:修宇                       成绩:                         日期:2020年3月4日       [实验目的]   (1)掌握分支结构要点: (2)熟悉分支结构程序中语句的执行过程: (3)掌握分支结构程序的设计方法. [实验条件]   PC机或者远程编程环境 [实验理论与

JS中的运算符&amp;JS中的分支结构

一.JS中的运算符 1.算术运算(单目运算符) + 加.- 减.* 乘./ 除.% 取余.++ 自增.-- 自减 >>> +:有两种作用,连接字符串/加法运算.当+两边全为数字时,进行加法运算: 当+两边有任意一边为字符串时,起连接字符串的作用,连接之后的结果为字符串 除+外,其余符号运算时,会先尝试将左右变量用Number函数转为数字 >>> /: 结果会保留小数点 >>> ++: 自增运算符,将变量在原有基础上+1: --: 自减运算符,将变量在原

java-分支结构(四种基本分支结构的认识)

分支结构:有条件的执行某语句,并非每句必走 1)if结构:1条路 2)if...else结构:2条路 3)if...else if结构:多条路 4)switch...case结构:多条路 优点:效率高.结构清晰 缺点:整数.相等 break:跳出switch 一.if结构的认识 /* * 1.if结构:1条路 * 1)语法: * if(boolean){ * 语句块 * } * 2)执行过程: * 判断boolean的值: * 若为true,则执行语句块 * 若为false,则不执行语句块 */

shell脚本编程的选择分支结构

选择执行结构: if语句单分支结构:如果条件为真,则执行then后的命令,否则,不做任何操作: if CONDITION :then STATEMENT fi 或 if CONDITION ; then STATEMENT1 STATEMENT2 ... fi 注意:想要执行then后面的STATEMENTS,前提条件是CONDITION部分为真: if语句的双分支结构:如果条件为真,就执行then后面的命令:否则就执行else后面的命令: if CONDITION ; then STATEME