C++选择结构学案

2023-10-27

【学习目标】

  1. 熟练掌握 C++ 中的关系、逻辑运算符。
  2. 熟知关系、逻辑运算符和数学运算符的优先级。
  3. 学会正确使用选择表达式。

【知识着陆】
1、关系运算符
在这里插入图片描述

使用关系运算符需要注意的问题
(1)“等于”与“赋值”的区别;
(2)实型数据(浮点数)的关系运算;
(3)运算符的优先级,如下表:
在这里插入图片描述

例1、假设变量定义为“int x=6,y=4,z=5;”,请分别写出下列表达式的值。
(1) x + y > y + z (2) ‘ x ’ < ‘ z ’
(3) x == x >= y (4) (x < y) >(y <= z)

2、逻辑运算符
在这里插入图片描述
在这里插入图片描述

逻辑运算符的优先级问题

在这里插入图片描述

注意:a、整型数据在参与逻辑运算时,根据其值是 0 或非 0,分别当作逻辑值“假”或“真”进行处理。
b、在逻辑表达式的计算过程中,一旦能够确定整个表达式的值,就会立刻停止计算。 (即短路计算)

阅读程序,写出程序的运行结果。

#include<iostream>
using namespace std;
int main(){
    int a,b,c,d;
    a = 2;b = 3;c = 0;
    d = (a > b) && (c = 4);//当判断a>b为假时,后面不会计算,直接赋值d为0
    cout << d << ” ” << c << endl;
    return 0;
}

3、if语句
if 语句有两种格式:
第一种格式为:

if (表达式) 语句1;
else 语句2;
在这里插入图片描述

第二种格式为:

if (表达式) 语句 ;
在这里插入图片描述

例1、旅游费用。
【问题描述】
风华公司“南京一日游”的收费标准为:5 人以内(含 5 人)按散客标准,每人 300 元;超过 5 人,按团体标准,每人 280 元。请根据输入的人数,输出其旅游费用。
【输入格式】
一行一个正整数 n,表示人数,1≤n≤5000000。
【输出格式】
一行一个正整数,表示需要的总旅游费用。
【输入样例】
9
【输出样例】
2520
【问题分析】
这是一个“选择性”问题,根据人数 n 来选择不同的收费标准。条件就是 n≤5,如果成立,那么收费为 n×300;否则,收费为 n×280。

#include<iostream>
using namespace std;
int main(){
    int n;
    cin >> n;
    if(n <= 5)
         cout << n * 300 << endl;
     else
         cout << n * 280 << endl;
     return 0;
}

或换成另一种形式:

#include<iostream>
using namespace std;
int main(){
    int n,ans;
    cin >> n;
    ans = n * 300;
    if(n > 5)
        ans = n * 280;
    cout << ans << endl;
    return 0;
}

4、if 语句的嵌套

在分支结构中经常会遇到这样的情况:如果条件1成立,就去做A事情,否则去做B事情,但是,在做A事情(或者B事情)时,还要根据条件2是否成立,决定是做A1(或者B1)这件子事情,还是去做A2(或者B2)这件子事情。在程序设计中,把这种情况称为分支结构的“嵌套”,一般用来解决三种及以上的分支情况。

例1、 三个数的大小比较。
【问题描述】
输入三个整数 x、y、z,判断其是否满足 x≤y≤z。若满足,输出“YES”;否则,输出“NO”。
【输入格式】
一行三个整数 x、y、z,int 范围以内。
【输出格式】
一行一个单词,表示答案。
【输入样例】
3 6 7
【输出样例】
YES
【问题分析】
前面已经介绍过用逻辑表达式“x<=y &&y<=z”来表示YES”的条件,本题也可以用 if语句的嵌套来解决,如图:

#include<iostream>
using namespace std;
int main(){
    int x,y,z;
    cin >> x >> y >> z;
    if(x <= y)
           if(y <= z)
                cout <<  ” YES ”  << endl;
            else
                cout <<  ” NO ”  << endl;
     else
           cout <<  ” NO ”  << endl;
   return 0;
} 

使用 if 语句的嵌套需注意的问题
(1)分支结构可以嵌套很多层;
(2)if 与 else 的配对关系;
(3)编程要形成良好的代码风格;

【学习思考】
1、选择结构的嵌套要慎重
2、视频学习Andy微信13734582485
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++选择结构学案 的相关文章

  • 通过 CMIS (dotCMIS) 连接到 SP2010:异常未经授权

    我正在使用 dotCMIS 并且想要简单连接到我的 SP2010 服务器 我尝试用 C 来做到这一点 如下所示http chemistry apache org dotnet getting started with dotcmis htm
  • 为什么 C# Array.BinarySearch 这么快?

    我已经实施了一个很简单用于在整数数组中查找整数的 C 中的 binarySearch 实现 二分查找 static int binarySearch int arr int i int low 0 high arr Length 1 mid
  • 为什么两个不同的 Base64 字符串的转换会返回相等的字节数组?

    我想知道为什么从 base64 字符串转换会为不同的字符串返回相同的字节数组 const string s1 dg const string s2 dq byte a1 Convert FromBase64String s1 byte a2
  • 动态加载程序集的应用程序配置

    我正在尝试将模块动态加载到我的应用程序中 但我想为每个模块指定单独的 app config 文件 假设我的主应用程序有以下 app config 设置
  • ASP.NET MVC:这个业务逻辑应该放在哪里?

    我正在开发我的第一个真正的 MVC 应用程序 并尝试遵循一般的 OOP 最佳实践 我正在将控制器中的一些简单业务逻辑重构到我的域模型中 我最近一直在阅读一些内容 很明显我应该将逻辑放在域模型实体类中的某个位置 以避免出现 贫血域模型 反模式
  • Asp.NET WebApi 中类似文件名称的路由

    是否可以在 ASP NET Web API 路由配置中添加一条路由 以允许处理看起来有点像文件名的 URL 我尝试添加以下条目WebApiConfig Register 但这不起作用 使用 URIapi foo 0de7ebfa 3a55
  • 从Web API同步调用外部api

    我需要从我的 Web API 2 控制器调用外部 api 类似于此处的要求 使用 HttpClient 从 Web API 操作调用外部 HTTP 服务 https stackoverflow com questions 13222998
  • BitTorrent 追踪器宣布问题

    我花了一点业余时间编写 BitTorrent 客户端 主要是出于好奇 但部分是出于提高我的 C 技能的愿望 我一直在使用理论维基 http wiki theory org BitTorrentSpecification作为我的向导 我已经建
  • 如何从 appsettings.json 文件中的对象数组读取值

    我的 appsettings json 文件 StudentBirthdays Anne 01 11 2000 Peter 29 07 2001 Jane 15 10 2001 John Not Mentioned 我有一个单独的配置类 p
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • 创建链表而不将节点声明为指针

    我已经在谷歌和一些教科书上搜索了很长一段时间 我似乎无法理解为什么在构建链表时 节点需要是指针 例如 如果我有一个节点定义为 typedef struct Node int value struct Node next Node 为什么为了
  • 显示UnityWebRequest的进度

    我正在尝试使用下载 assetbundle统一网络请求 https docs unity3d com ScriptReference Networking UnityWebRequest GetAssetBundle html并显示进度 根
  • 如何序列化/反序列化自定义数据集

    我有一个 winforms 应用程序 它使用强类型的自定义数据集来保存数据进行处理 它由数据库中的数据填充 我有一个用户控件 它接受任何自定义数据集并在数据网格中显示内容 这用于测试和调试 为了使控件可重用 我将自定义数据集视为普通的 Sy
  • 如何使用 C# / .Net 将文件列表从 AWS S3 下载到我的设备?

    我希望下载存储在 S3 中的多个图像 但目前如果我只能下载一个就足够了 我有对象路径的信息 当我运行以下代码时 出现此错误 遇到错误 消息 读取对象时 访问被拒绝 我首先做一个亚马逊S3客户端基于我的密钥和访问配置的对象连接到服务器 然后创
  • 如何从两个不同的项目中获取文件夹的相对路径

    我有两个项目和一个共享库 用于从此文件夹加载图像 C MainProject Project1 Images 项目1的文件夹 C MainProject Project1 Files Bin x86 Debug 其中有project1 ex
  • 通过指向其基址的指针删除 POD 对象是否安全?

    事实上 我正在考虑那些微不足道的可破坏物体 而不仅仅是POD http en wikipedia org wiki Plain old data structure 我不确定 POD 是否可以有基类 当我读到这个解释时is triviall
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • 混合 ExecutionContext.SuppressFlow 和任务时 AsyncLocal.Value 出现意外值

    在应用程序中 由于 AsyncLocal 的错误 意外值 我遇到了奇怪的行为 尽管我抑制了执行上下文的流程 但 AsyncLocal Value 属性有时不会在新生成的任务的执行范围内重置 下面我创建了一个最小的可重现示例来演示该问题 pr
  • 是否可以在 .NET Core 中将 gRPC 与 HTTP/1.1 结合使用?

    我有两个网络服务 gRPC 客户端和 gRPC 服务器 服务器是用 NET Core编写的 然而 客户端是托管在 IIS 8 5 上的 NET Framework 4 7 2 Web 应用程序 所以它只支持HTTP 1 1 https le
  • C# - OutOfMemoryException 在 JSON 文件上保存列表

    我正在尝试保存压力图的流数据 基本上我有一个压力矩阵定义为 double pressureMatrix new double e Data GetLength 0 e Data GetLength 1 基本上 我得到了其中之一pressur

随机推荐

  • 【批处理DOS-CMD命令-汇总和小结】-网络管理命令-上网和网络通信相关命令-进程与程序管理(netstat、tasklist、taskkill、taskmgr)

    一 显示netstat的帮助信息 执行命令 netstat 得到帮助信息如下 C Users Administrator gt netstat 显示协议统计信息和当前 TCP IP 网络连接 NETSTAT a b e f n o p pr
  • 曼哈顿距离,欧式距离,余弦距离

    1 曼哈顿距离 曼哈顿距离 叫出租车距离的 具见上图黄线 应该就能明白 计算距离最简单的方法是曼哈顿距离 假设 先考虑二维情况 只有两个乐队 x 和 y 用户A的评价为 x1 y1 用户B的评价为 x2 y2 那么 它们之间的曼哈顿距离为
  • MySQL客户端软件(DBeaver)连接报错解决方案

    1 mysql出现错误提示 Communications link failure The last packet sent successfully to the server was 0 mi 无论是在mysql客户端连接 或者是cod
  • DC靶场系列--DC1

    目录 引言 搭建环境 信息收集 漏洞分析 漏洞利用 引言 DC靶场 主要是通过web渗透技术 拿到web服务器的权限 会有flag做为标记 以拿到最终的flag为目标 DC1是vulnhub平台下的DC系列的第一个靶场 DC系列下载地址 官
  • 长角牛网络监听 arp欺骗

    一 原理 arp欺骗和攻击的原理是一样的 都是向目标计算机投毒 发送虚假ip地址对应的mac地址 致使被投毒计算机数据被窃听或者数据被盗取 多数情况欺骗和攻击会发生在计算机和网关的连接过程中 给目标计算机发送假的网关ip对应的mac地址 可
  • 【SDL实践指南】安全培训介绍

    转载自 SDL实践指南 安全培训介绍 腾讯云开发者社区 腾讯云https cloud tencent com developer article 2235019 文章前言 安全并不仅仅是安全团队的本职工作 也是企业的每个研发人员 产品经理
  • windows通过注册表修改3389端口号

    span style color FF0000 windows通过注册表修改3389端口号 步骤如下 span 1 开始 rarr 运行 输入regedit 打开注册表 进入这个路径HKEY LOCAL MACHINE SYSTEM Cur
  • 【波浪动态特效】基于jquery实现页面底部波浪动画效果(附完整源码下载)

    文章目录 写在前面 涉及知识点 实现效果 1 搭建页面 1 1 创建两个片区 1 2 创建波浪区域 1 3 静态页面源码 2 JS实现波浪效果 2 1 动画原理 2 2 动画源码 3 源码分享 3 1 百度网盘 3 2 123云盘 3 3
  • 图像识别(一) 之 灰度共生矩阵(GLDM)

    一 灰度共生矩阵 灰度共生矩阵被定义为从灰度为i的像素点出发 离开某个固定位置 相隔距离为d 方位为 的点上灰度值为的概率 1 计算方法 如上图 GLCM i j 的值呢就是I中像素为i 像素为j的有有多少和相邻的成对点 图上的 相邻 指的
  • 在VUE3中使用Pinia

    一 安装使用Pinia 安装下载 npm install pinia main js引入 import createPinia from pinia app use createPinia 根目录新建store index js中写入 im
  • ubuntu20.04 安装Anaconda3+CUDA+cudnn+Pytorch

    ubuntu20 04 安装Anaconda3 CUDA cudnn Pytorch Ubuntu GPU驱动 CUDA版本 CuDNN 版本 都要相互关联 版本不对应的话 就会出错 版本确认顺序 CUDA版本 gt CuDNN版本 gt
  • 反射、泛型详解

    反射 Class文件所包含的内容都有其对应的方法可以获得 创建Class对象的3种方式 方式一 类 class Class personClass Person class 方式二 对象 getClass Person person new
  • 《算法学习》C语言中“ const * “与“ * const “区别总结

    一 简介 最近重新学习了C语言中的指针 本文总结一下C语言中使用 的心得 二 总结 const 表示指针变量是constant 恒定的 不允许通过访问指针地址的方式改变指针所指地址的的值 const 表示该指针是恒定的 即该指针不能再指向别
  • 修改外向交货单:BAPI_OUTB_DELIVERY_CHANGE/SD_DELIVERY_UPDATE_PICKING_SAP刘梦_新浪博客

    TABLES LIKP PARAMETERS P DEL LIKE LIKP VBELN DEFAULT 8000002260 DATA STR HEADER DATA LIKE BAPIOBDLVHDRCHG STR HEADER CON
  • POJ-1240(分治,递归降解)

    题目 http poj org problem id 1240 题目的意思即 给定一棵m元树的前序和后序遍历 问你一共有多少颗m元树有这样的性质 乍一看好像没什么头绪 由于题目中也提到了由中序和后序求前序 想到是不是同样能用分治法 我们知道
  • 在阿里云服务器上部署Jekyll博客

    Step 0 首先买一台服务器 并且装好环境 我都是在阿里云上面买 而且我只是想挂一个个人网站 所以只需要最便宜的轻量应用服务器就好 半年只需要72块钱 我现在想来 之前也应该买香港的服务器 因为更加便宜 大陆的要60块一月 而且不需要给服
  • 初识ASO

    大概了解了一下ASO 在此记录一下 ASO 应用商店优化 的简称 ASO App Search Optimization 重点在于关键词搜索排名优化 覆盖热词 搜索下载激活 优化评论 关键词覆盖数量优化 就是指用户搜索更多关键词都能找到该款
  • VS Code(Visual Studio Code)环境下C++开发的配置方法

    一 Visual Studio Code的下载 去官网下载 下载地址 https code visualstudio com Download 我在windows系统下使用 直接点击Windows那个图标下载就好 安装时可以自己选择一下安装
  • layui源码详细分析之树形菜单

    前言 今天分析的是layui框架内置模块tree js 该模块的功能是构建树形菜单 具体的形式 layui官网该模块的具体形式 如下 自实现树形菜单 使用html css js实现了树形菜单 具体的实现思路如下 html中定义包含树形菜单的
  • C++选择结构学案

    学习目标 熟练掌握 C 中的关系 逻辑运算符 熟知关系 逻辑运算符和数学运算符的优先级 学会正确使用选择表达式 知识着陆 1 关系运算符 使用关系运算符需要注意的问题 1 等于 与 赋值 的区别 2 实型数据 浮点数 的关系运算 3 运算符