首页 > 编程语言 >C语言程序设计第三讲:选择结构程序设计

C语言程序设计第三讲:选择结构程序设计

时间:2024-07-23 18:28:05浏览次数:17  
标签:语句 10 int 第三 运算符 printf 程序设计 C语言 表达式

1. 选择结构概述

  • 定义与重要性
    • 选择结构使得程序可以根据不同的条件执行不同的代码段。
      选择结构示意图

2. if 语句详解

  • 基本形式
    • if (表达式) 语句;:当表达式为真时执行语句。
  • 基本形式示例
int a = 10;
if (a > 5) {
    printf("a is greater than 5\n");
}
  • 扩展形式
    • if (表达式) 语句1; else 语句2;:当表达式为真时执行语句1,否则执行语句2。
    • 多分支结构:使用多个 else if 来处理多种条件。
  • 扩展形式示例
int a = 10;
if (a > 15) {
    printf("a is greater than 15\n");
} else if (a > 10) {
    printf("a is greater than 10 but less than or equal to 15\n");
} else {
    printf("a is less than or equal to 10\n");
}
  • 表达式详解
    • 表达式可以是关系表达式、逻辑表达式或直接是数值。
    • 解释如何构造有效的判断条件。
  • 复合语句的使用
    • 使用花括号 {} 包围的语句块以在条件为真时执行多个语句。

3. 关系与逻辑运算符

  • 关系运算符
    • <, <=, >, >=, ==, !=:用于比较两个值,结果为真或假。
    • 优先级及其与算术运算符的关系。
      关系运算符
      运用示例
  • 关系运算符示例
int a = 10, b = 20;
if (a == b) {
    printf("a is equal to b\n");
} else if (a < b) {
    printf("a is less than b\n");
}
  • 逻辑运算符
    • && (与), || (或), ! (非):用于组合多个关系表达式。
       详细说明
      真值表
  • 逻辑运算符示例
int a = 10, b = 5, c = 20;
if (a > b && a < c) {
    printf("a is between b and c\n");
}

4. 条件运算符

  • 基本概念
    • 由两个符号( ? 和 : )组成,必须一起使用,要求有3个操作对象,称为三目运算符,它是C语言中唯一的三目运算符。
  • 基本用法
    • (条件表达式) ? 表达式1 : 表达式2:根据条件表达式的真假选择表达式1或表达式2。
      用法示例
  • 基本用法示例
int a = 10;
int max = (a > 20) ? a : 20;
printf("Max value is %d\n", max);

5. switch 语句

  • 基本结构
    • if语句只有两个分支可以选择,如果要实现多个分支,使用起来比较复杂,嵌套的层数比较多,大大降低了代码的可读性。C语言提供了switch语句直接处理多分支选择。
      基本格式
  • 执行流程
    (1) switch括号中的表达式,值类型应为整数类型(包括字符型)
    (2) switch下面的花括号是一个复合语句,都属于switch语句的语句体
    (3) case和default是标号,用来标志一个位置
    (4) 执行switch语句时,先计算表达式的值,然后将值与case后面的常量按顺序进行对比,如果相同则从该执行该语句。如果没有相同的常量,则执行default标号后面的语句。
    (5) 可以没有default标号,如果没有与switch表达式相匹配的case常量,则不执行任何语句,继续执行switch语句块后面的代码
    (6) 各个case标号出现次序不影响执行结果。
    (7) 每个常量值不能重复,否则出现冲突
    (8) 在case子句中虽然包含了一个以上执行语句,但可以不必用{ }括起来,会自动顺序执行case标号后面的所有语句。加上{}也可以
    (9) 多个case标号可以公用一组执行语句
    (10) break语句打断,防止执行完对应语句继续向下执行
  • 基本结构示例
int num = 2;
switch (num) {
    case 1:
        printf("Number is 1\n");
        break;
    case 2:
        printf("Number is 2\n");
        break;
    default:
        printf("Number is neither 1 nor 2\n");
}

6. 选择结构的嵌套

  • 嵌套if结构
    • 在if语句中又包含一个或多个if语句称为if语句的嵌套
      嵌套示意图
  • 嵌套if结构示例
int a = 10, b = 20;
if (a > 5) {
    if (b > 15) {
        printf("Both a and b are greater than their respective conditions\n");
    }
}

7. 实战编程示例

  • 综合示例
#include <stdio.h>
int main() {
    int age = 20;
    if (age < 18) {
        printf("You are a minor.\n");
    } else if (age >= 18 && age < 60) {
        printf("You are an adult.\n");
    } else {
        printf("You are a senior citizen.\n");
    }
    int num1 = 10, num2 = 20, num3 = 30;
    int max = (num1 > num2) ? (num1 > num3 ? num1 : num3) : (num2 > num3 ? num2 : num3);
    printf("The maximum number is %d\n", max);
    return 0;
}

标签:语句,10,int,第三,运算符,printf,程序设计,C语言,表达式
From: https://blog.csdn.net/zgy11026/article/details/140642733

相关文章

  • 代码随想录算法训练营第三天 | Leetcode 203 移除链表元素 Leetcode 206 翻转链表
    前言今天的两道题目都不难,但细节需要注意。如移除链表元素用到的虚拟头节点,翻转链表的思路。翻转链表真是写了忘,忘了写,希望这次能记住。除此之外我决定每天的记录里面增加一个总结八股的部分,将来二刷再翻看文章的时候顺便也能复习八股知识点。Leetcode203移除链表元素题目......
  • 【时时三省】(C语言基础)操作符
    山不在高,有仙则名。水不在深,有龙则灵。              ——csdn时时三省操作符~按(二进制)位取法把所有二进制位中数字,1变成0,0变成1比如把0按位取法a=0二进制:00000000000000000000000000000000把0变成111111111111111111111111111111111~a(补......
  • C语言 结构体——《跟老吕学C》
    C语言结构体——《跟老吕学C》C语言结构体一、C语言结构体的基本概念二、C语言结构体的定义与初始化1.结构体的定义2.结构体的初始化3.结构体的初始化(指定成员)4.结构体数组的初始化5.结构体指针的初始化6.注意事项三、C语言结构体的使用1.访问结构体的成员2.......
  • 第三周DAY01---nfs、samba的安装和部署
    webserver服务器:作用是发布nginx的web项目1、安装nginx(只下载不安装)[root@web_server~]#yum-yinstall--downloadonly--downloaddir=./soft/nginx2、配置一个本地的nginx仓库[root@web_server~]#yum-yinstallcreaterepo 用于创建本地仓库使用createrepo生......
  • C语言分支循环语句
    写博客太麻烦了,感觉要等转完专业之后才会写得多一点目前我知道c的分支有if,switchIf 的语句结构大致如下:if(3==3//判断,0为假,非0为真){//判断结果为真之后,运行的表达式printf("nb");}if语句中判断相等要用“==”,“=”表示赋值。除此之外多个条件可用elseif,else。e......
  • C语言-栈和队列
    文章目录......
  • Pycharm社区版在外部安装了selenium,ddt在项目中却无法用(安装了第三方包pycharm无法识
    1.安装selenium的方法(1)找到存放selenium目录的文件夹,右击“在终端中打开”(2)在命令行中输入pipinstallseleniumXXX.whl(3)等待些许时间,等待到提示安装成功2在pycharm中创建项目能识别到安装到的包(1)点击file——》NewProject(2)勾选上Inherit globalsite-packag......
  • C语言知识大闯关之一维数组
    引言数组由数据类型相同的一系列的数据组成;-数组存放的是一个或多个数据,但是数组内元素的个数不能为零。-数组存放的元素类型是相同的。数组分为一维数组和多维数组;本章我们讲解的是一位数组。一维数组的创建和初始化一维数组创建C语言中,需要使用数组时,通过声明告......
  • pom引入第三方lib的方法
    <dependency><groupId>vijava</groupId>//自定义<artifactId>vijava</artifactId>//自定义<version>55b20130927</version>//自定义<scope>system</scope>......
  • 初识C语言(第一讲常见的C语言概念)
    文章目录一.C语言是什么?二.为什么选择C语言三.编译器的选择四.VS项目和源文件、头文件介绍五.第一个C语言程序六.main函数七.printf和库函数八.关键字介绍九.字符和ASCLL编码十.字符串和\0十一.转义字符十二.语句和语句分类十三.注释是什么?为什么写注释?总结一.C语言......