2.1 C++之条件语句

news2025/5/31 19:05:03

学习目标

  • 理解程序的分支逻辑(根据不同条件执行不同代码)。
  • 掌握 if-elseswitch 语句的用法。
  • 能编写简单的条件判断程序(如成绩评级、游戏选项等)。

在这里插入图片描述

1 条件语句的基本概念

什么是条件语句?

  • 程序在执行时,有时需要根据不同的情况做出不同的操作。
  • 条件语句就是让计算机“做选择”的代码结构。

核心结构

if (条件) {
    // 条件成立时执行的代码
} else {
    // 条件不成立时执行的代码
}

类比生活

  • 就像“如果今天下雨,就带伞;否则,就不带伞”。

2 if-else 语句

基本语法
if (条件) {
    // 条件成立时执行
} else {
    // 条件不成立时执行
}

示例1:判断成绩是否及格

int score = 75;
if (score >= 60) {
    cout << "及格!";
} else {
    cout << "不及格!";
}

运行结果

及格!
多条件判断(else if)
if (条件1) {
    // 条件1成立时执行
} else if (条件2) {
    // 条件2成立时执行
} else {
    // 其他情况执行
}

示例2:成绩等级转换(A/B/C/D/E)

int score = 85;
if (score >= 90) {
    cout << "A";
} else if (score >= 80) {
    cout << "B";
} else if (score >= 70) {
    cout << "C";
} else if (score >= 60) {
    cout << "D";
} else {
    cout << "E";
}

运行结果

B
嵌套 if 语句
  • ifelse 里再写 if 语句。
    示例3:判断三角形类型
int a = 3, b = 4, c = 5;
if (a + b > c && a + c > b && b + c > a) {
    if (a == b && b == c) {
        cout << "等边三角形";
    } else if (a == b || b == c || a == c) {
        cout << "等腰三角形";
    } else {
        cout << "普通三角形";
    }
} else {
    cout << "不能构成三角形";
}

运行结果

普通三角形

3 switch 语句

基本语法
  • 适用于多个固定选项的判断(如菜单选择、星期几等)。
switch (变量) {
    case1:
        // 代码1
        break;
    case2:
        // 代码2
        break;
    default:
        // 默认情况
}

示例4:模拟计算器菜单

cout << "1.加法\n2.减法\n3.退出\n请选择:";
int choice;
cin >> choice;

switch (choice) {
    case 1:
        cout << "执行加法";
        break;
    case 2:
        cout << "执行减法";
        break;
    case 3:
        cout << "退出程序";
        break;
    default:
        cout << "输入错误!";
}

运行示例

1.加法  
2.减法  
3.退出  
请选择:2  
执行减法  
switch 与 if 的区别
特点if-elseswitch
适用场景范围判断(如 score > 60固定值匹配(如 case 1:
可读性适合复杂条件适合多个选项
效率逐条判断直接跳转(更快)

4 常见错误 & 调试技巧

易错点
  1. **忘记写 ==,误用 **=
    • if (x = 5) ❌(赋值,永远为真)
    • if (x == 5) ✅(比较)
  2. switch** 漏写 **break
    • 会导致“穿透”执行多个 case
  3. 逻辑运算符错误
    • if (a < b < c) ❌(错误写法)
    • if (a < b && b < c) ✅(正确写法)
调试技巧
  • 使用 cout 打印变量的值,检查条件是否按预期执行。
  • 用注释 // 暂时屏蔽部分代码,逐步排查问题。

5 练习与挑战

基础练习

  1. 编写程序,判断一个数是奇数还是偶数。
  2. 输入月份(1-12),输出对应的季节(春/夏/秋/冬)。

进阶挑战

  1. 实现一个“BMI 计算器”,根据身高体重判断胖瘦等级。
  2. 设计一个“简易ATM机”,用 switch 实现存款、取款、查询功能。

总结

知识点关键内容
if-else用于条件分支,支持多级判断(else if)。
switch适用于固定选项匹配,比 if 更清晰。
常见错误= vs ==break 遗漏、逻辑错误。
应用场景游戏选项、成绩评级、菜单交互等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2386882.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux `ls` 命令深度解析与高阶应用指南

Linux `ls` 命令深度解析与高阶应用指南 一、核心功能解析1. 基本作用2. 与类似命令对比二、选项系统详解1. 常用基础选项2. 进阶筛选选项三、高阶应用技巧1. 组合过滤查询2. 格式化输出控制3. 元数据深度分析四、企业级应用场景1. 存储空间监控2. 安全审计3. 自动化运维五、特…

【MPC控制 - 从ACC到自动驾驶】5. 融会贯通:MPC在ACC中的优势总结与知识体系构建

【MPC控制 - 从ACC到自动驾驶】融会贯通&#xff1a;MPC在ACC中的优势总结与知识体系构建 在过去的四天里&#xff0c;我们一起经历了一段奇妙的旅程&#xff1a; Day 1: 我们认识了自适应巡航ACC这位“智能领航员”&#xff0c;并初见了模型预测控制MPC这位“深谋远虑的棋手…

初等数论--Garner‘s 算法

0. 介绍 主要通过混合积的表示来逐步求得同余方程的解。 对于同余方程 { x ≡ v 0 ( m o d m 0 ) x ≡ v 1 ( m o d m 1 ) ⋯ x ≡ v k − 1 ( m o d m k − 1 ) \begin{equation*} \begin{cases} x \equiv v_0 \quad (\ \bmod \ m_0)\\ x \equiv v_1 \quad (\ \bmod \ m_1)…

NV211NV212美光科技颗粒NV219NV220

NV211NV212美光科技颗粒NV219NV220 技术架构解析&#xff1a;从颗粒到存储系统 近期美光科技发布的NV211、NV212、NV219、NV220系列固态颗粒&#xff0c;凭借其技术突破引发行业关注。这些颗粒基于176层QLC堆叠工艺&#xff0c;单Die容量预计在2026年可达1Tb&#xff0c;相当…

SQL解析工具JSQLParser

目录 一、引言二、JSQLParser常见类2.1 Class Diagram2.2 Statement2.3 Expression2.4 Select2.5 Update2.6 Delete2.7 Insert2.8 PlainSelect2.9 SetOperationList2.10 ParenthesedSelect2.11 FromItem2.12 Table2.13 ParenthesedFromItem2.14 SelectItem2.15 BinaryExpressio…

Wave Terminal + Cpolar:SSH远程访问的跨平台实战+内网穿透配置全解析

文章目录 前言1. Wave Terminal安装2. 简单使用演示3. 连接本地Linux服务器3.1 Ubuntu系统安装ssh服务3.2 远程ssh连接Ubuntu 4. 安装内网穿透工具4.1 创建公网地址4.2 使用公网地址远程ssh连接 5. 配置固定公网地址 前言 各位开发者朋友&#xff0c;今天为您介绍一款颠覆性操…

html使用JS实现账号密码登录的简单案例

目录 案例需求 思路 错误案例及问题 修改思路 案例提供 所需要的组件 <input>标签&#xff0c;<button>标签&#xff0c;<script>标签 详情使用参考&#xff1a;HTML 教程 | 菜鸟教程 案例需求 编写一个程序&#xff0c;最多允许用户尝试登录 3 次。…

【数据集】基于ubESTARFM法的100m 地温LST数据集(澳大利亚)

目录 数据概述一、输入数据与处理二、融合算法1. ESTARFM(Enhanced STARFM)2. ubESTARFM(Unbiased ESTARFM)代码实现数据下载参考根据论文《Generating daily 100 m resolution land surface temperature estimates continentally using an unbiased spatiotemporal fusion…

51c自动驾驶~合集55

我自己的原文哦~ https://blog.51cto.com/whaosoft/13935858 #Challenger 端到端碰撞率暴增&#xff01;清华&吉利,框架&#xff1a;低成本自动生成复杂对抗性驾驶场景~ 自动驾驶系统在对抗性场景&#xff08;Adversarial Scenarios&#xff09;中的可靠性是安全落…

【前端基础】Promise 详解

文章目录 什么是 Promise&#xff1f;为什么要使用 Promise&#xff1f;创建 Promise消费 Promise (使用 Promise)1. .then(onFulfilled, onRejected)2. .catch(onRejected)3. .finally(onFinally) Promise 链 (Promise Chaining)Promise 的静态方法1. Promise.resolve(value)2…

高性能管线式HTTP请求

高性能管线式HTTP请求:原理、实现与实践 目录 高性能管线式HTTP请求:原理、实现与实践 1. HTTP管线化的原理与优势 1.1 HTTP管线化的基本概念 关键特性: 1.2 管线化的优势 1.3 管线化的挑战 2. 高性能管线式HTTP请求的实现方案 2.1 技术选型与工具 2.2 Java实现:…

【CSS】九宫格布局

CSS Grid布局&#xff08;推荐&#xff09; 实现代码&#xff1a; <!doctype html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0"…

Python用Transformer、Prophet、RNN、LSTM、SARIMAX时间序列预测分析用电量、销售、交通事故数据

原文链接&#xff1a; tecdat.cn/?p42219 在数据驱动决策的时代&#xff0c;时间序列预测作为揭示数据时序规律的核心技术&#xff0c;已成为各行业解决预测需求的关键工具。从能源消耗趋势分析到公共安全事件预测&#xff0c;不同领域的数据特征对预测模型的适应性提出了差异…

java基础(面向对象进阶高级)泛型(API一)

认识泛型 泛型就等于一个标签(比如男厕所和女厕) 泛型类 只能加字符串&#xff1a; 把别人写好的东西&#xff0c;自己封装。 泛型接口 泛型方法、泛型通配符、上下限 怎么解决下面的问题&#xff1f; API object类 toString: equals: objects类 包装类 为什么上面的Integer爆红…

学习心得(17--18)Flask表单

一. 认识表单&#xff1a;定义表单类 password2中末端的EqualTo&#xff08;password&#xff09;是将密码2与密码1进行验证&#xff0c;看是否相同 二.使用表单&#xff1a; 运行 如果遇到这个报错&#xff0c;就在该页面去添加 下面是举例&#xff1a; 这就是在前端的展示效…

微信小程序进阶第2篇__事件类型_冒泡_非冒泡

在小程序中&#xff0c; 事件分为两种类型&#xff1a; 冒泡事件&#xff0c; 当一个组件上的事件被触发后&#xff0c;该事件会向父节点传递非冒泡事件&#xff0c; 当一个组件上的事件被触发后&#xff0c; 该事件不会向父节点传递。 一 冒泡事件 tap&#xff0c; touchst…

电机控制学习笔记

文章目录 前言一、电机二、编码器三、开环控制和闭环控制总结 前言 学习了解电机控制技术的一些原理和使用的方法。 一、电机 直流有刷电机 操作简单 使用H桥驱动直流有刷电机 直流有刷电机驱动板 电压检测 电流检测以及温度检测 直流无刷电机 使用方波或者正弦波进行换向…

企业网站架构部署与优化-Nginx性能调优与深度监控

目录 #1.1Nginx性能调优 1.1.1更改进程数与连接数 1.1.2静态缓存功能设置 1.1.3设置连接超时 1.1.4日志切割 1.1.5配置网页压缩 #2.1nginx的深度监控 2.1.1GoAccess简介 2.1.2nginx vts简介 1.1Nginx性能调优 1.1.1更改进程数与连接数 &#xff08;1&#xff09;进程数 进程数…

行列式的线性性质(仅限于单一行的加法拆分)

当然可以&#xff0c;以下是经过排版优化后的内容&#xff0c;保持了原始内容不变&#xff0c;仅调整了格式以提升可读性&#xff1a; 行列式的线性性质&#xff08;加法拆分&#xff09; 这个性质说的是&#xff1a;如果行列式的某一行&#xff08;或某一列&#xff09;的所有…

JAVA基础编程练习题--50道

一&#xff1a;循环结构 1.1 for循环 水鲜花数 &#xff08;1&#xff09;题目 &#xff08;2&#xff09;难点 如何获取三位数的个位数 如何计算一个数的立方 判断两数值是否相等 &#xff08;3&#xff09;代码 最大公约数 &#xff08;1&#xff09;题目 &#xff08;2&…