C++青少年简明教程:If选择语句

C++青少年简明教程:If选择语句

C++中选择语句的语法是:

if (条件) {

    条件成立时需要执行的语句...

} [else {

    条件不成立时需要执行的语句...

}]

说明:

if后面使用一个括号,括号里是条件——关系表达式。

所谓的关系表达式就是判断数据的关系如何。

有如下几种关系:

大于:> 比如 3>2

大于等于:>= 比如 5>=5

小于:< 比如 5<10

小于等于:<= 比如 10<=11

等于:== 比如 3+2 == 2+3

不等于:!= 比如 5 != 4+2

除了关系表达式之外,还有逻辑表达式,逻辑表达式可以表示多个条件之间的关系,有以下几种逻辑运算:

并且:&&

或者:||

非:!

if语句(单分支选择语句)

语法格式:

if(条件表达式)

语句或语句块

执行流程图:

例、读入一个整数,如果是偶数,输出yes,代码如下:

#include <iostream>
using namespace std;

int main() {
    int num;
    cout << "请输入一个整数: ";
    cin >> num;

    if (num % 2 == 0) {
        cout << "yes" << endl;
    } 
	if (num % 2 != 0){
        cout << "no" << endl;
    }

    return 0;
}

语法格式:

if(条件表达式)

    语句或语句块1

else

    语句或语句块2

执行流程图:

例、前面提到的例子,用双支选择语句实现,代码如下:

#include <iostream>
using namespace std;

int main() {
    int num;
    cout << "请输入一个整数: ";
    cin >> num;

    if (num % 2 == 0) {
        cout << "yes" << endl;
    } else {
        cout << "no" << endl;
    }

    return 0;
}

if语句的嵌套

在C++中,可以将一个if语句放在另一个if语句的内部,这样就形成了if语句的嵌套结构。以实现更复杂的条件逻辑。

if(表达式1)

    if(表达式2)

       语句1;

    else

       语句2;  

else

   if(表达式3)

       语句3;

   else

       语句4;

示例:

#include <iostream>
using namespace std;

int main() {
    int score; 
    cout << "请输入一个分数: ";
    cin >> score;

    if (score >= 60) { // 首先判断分数是否及格
        cout << "及格" << endl;
        if (score >= 80) { // 如果及格,再判断是否优秀
            cout << "优秀" << endl;
        } else {
            cout << "良好" << endl;
        }
    } else {
        cout << "不及格" << endl;
        if (score >= 50) { // 如果不及格,判断是否接近及格
            cout << "接近及格" << endl;
        } else {
            cout << "情况不妙呀" << endl;
        }
    }

    return 0;
}

在这个例子中,首先判断分数是否及格(大于等于60),如果及格,再进一步判断是否优秀(大于等于80)。如果不及格,则判断是否接近及格(大于等于50)。这个程序会输出“及格”和“优秀”,因为分数是85。

请注意,过多层次的嵌套会使代码难以阅读和维护。

三目运算符

C++中的三目运算符(?:)是一种简洁的条件运算符,其语法格式为:

(condition) ? true_expression : false_expression;

其含义是:如果 condition 为真,则表达式的值为 true_expression ,否则为 false_expression 。它可以用作简单的 if-else 语句的替代者。

示例:

#include <iostream>
using namespace std;

int main() {
  int a = 10;
  int b = 20;

  // 使用三目运算符
  int max = (a > b) ? a : b;

  cout << "最大值是:" << max << endl;

  return 0;
}

需要注意的是,三目运算符的优先级较低,因此在复杂的表达式中使用时,可能需要加上括号来明确运算顺序。

三目运算符也可以嵌套使用。例如:

int num = 10;

int result;

result = (num > 5) ? ((num < 20) ? 100 : 200) : 300;

在上面的代码中,如果num大于5小于20,则result的值为100,否则为200。如果num小于等于5,则result的值为300。

if-else if-else语句(多分支选择语句)

语法格式:

if (条件1) {

    语句块1

}

else if (条件2) {

    语句块1

}

……

else {

    语句块K

}

if-else if-else语句(多分支选择语句)执行流程图:

使用if-else if-else多分支选择语句源码:

#include <iostream>
using namespace std;

int main() {
  int num;
  cout << "请输入一个数字:";
  cin >> num;

  // 使用if语句
  if (num > 0) {
    cout << "这是一个正数" << endl;
  } else if (num == 0) {
    cout << "这是零" << endl;
  } else {
    cout << "这是一个负数" << endl;
  }

  return 0;
}

母子约定问题

源码如下:

#include <iostream>

using namespace std;

int main() {
    int fenshu;
    cout << "请输入考试分数:";
    cin >> fenshu;

    if (fenshu == 100)
        cout << "暑假不用写作业";
    else if (fenshu >= 90)
        cout << "奖励100元零花钱";
    else if (fenshu >= 80)
        cout << "奖励10元零花钱";
    else if (fenshu >= 70)
        cout << "没奖励";
    else if (fenshu >= 60)
        cout << "暑假不能玩电子游戏";
    else
        cout << "会发生可怕的事情...";

    return 0;
}

注意条件的顺序!

练习题:闰年问题

判断一个年份是否为闰年的规则是:

1.如果该年份能够被4整除,但不能被100整除,则该年份是闰年。

2.如果该年份能够被400整除,则该年份也是闰年。

例如,2004年是闰年,因为它能够被4整除,但不能被100整除;而1900年不是闰年,因为它能够被4整除,但同时也能被100整除,不符合第一条规则。而2000年是闰年,因为它能够被400整除,符合第二条规则。

请用不同的方法实现。

参看代码

#include <iostream>  
using namespace std;
 
int main() {  
    int year;  
    cout << "请输入一个年份: ";  
    cin >> year;  
  
    // 判断是否为闰年  
    if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {  
        cout << year << " 是闰年." << endl;  
    } else {  
        cout << year << " 不是闰年." << endl;  
    }  
  
    return 0;  
}

示例中,直接在main函数内部使用了if语句来判断输入的年份是否为闰年。如果满足闰年的条件(即年份能被4整除但不能被100整除,或者能被400整除),则输出该年份是闰年;否则,输出该年份不是闰年。

如果您想要使用嵌套的if语句来判断一个年份是否为闰年,可以像下面这样写:

#include <iostream>  
using namespace std;
 
int main() {  
    int year;  
    cout << "请输入一个年份: ";  
    cin >> year;  
  
    // 使用嵌套的if语句判断是否为闰年  
    if (year % 4 == 0) {  
        if (year % 100 == 0) {  
            if (year % 400 == 0) {  
                cout << year << " 是闰年." << endl;  
            } else {  
                cout << year << " 不是闰年." << endl;  
            }  
        } else {  
            cout << year << " 是闰年." << endl;  
        }  
    } else {  
        cout << year << " 不是闰年." << endl;  
    }  
  
    return 0;  
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java基础之异常(简单易懂)

异常 1.JAVA异常体系 &#xff08;1&#xff09;Throwable类(表示可抛)是所有异常和错误的超类&#xff0c;两个直接子类为Error和Exception,分别表示错误和异常;其中异常类Exception又分为运行时异常和非运行时异常&#xff0c;这两个异常有很大区别&#xff0c;运行时异常也…

生成式AI改变的不只是应用场景,而是要重塑整个行业

即使是在各种创新技术不断涌现的IT行业&#xff0c;生成式AI也可以当之无愧地说是当前全球最受关注的焦点领域&#xff0c;没有之一。 那么对于企业来说&#xff0c;生成式AI技术究竟可以为他们带来怎样的变化和革新&#xff1f;企业又能从中获得怎样的收益&#xff1f; 作为一…

靠着单干实现财富自由,可太爽了

这里所说的“单干”&#xff0c;并不是单打独斗的意思&#xff0c;而是一种商业认知&#xff0c;以及由这种认知衍生出来的商业模式、商业方法和商业实践。 之前提到单干&#xff0c;会本能地以为它是指脱离公司等组织形式&#xff0c;自己一个人做生意。现在单干有了更丰富的…

医院门诊互联电子病历|基于SSM+vue的医院门诊互联电子病历管理信息系统的设计与实现(源码+数据库+文档)

医院门诊互联电子病历管理信息系统 目录 基于SSM&#xff0b;vue的医院门诊互联电子病历管理信息系统的设计与实现 一、前言 二、系统设计 三、系统功能设计 1系统功能模块 2后台登录模块 5.2.1管理员功能 5.2.2用户功能 5.2.3医生功能 四、数据库设计 五、核心代码…

源网络地址转换SNAT

左上角的是访问互联网发送的数据包&#xff0c;第一个是访问&#xff0c;第二个是网页传回来的 3、4项是源端口号和目的端口号&#xff08;3是随机的&#xff08;1024-65535&#xff09;&#xff0c;那个是http的网页服务端口就是80&#xff09; 那么往回传数据的时候源和目的…

[排序算法]2. 图解选择排序及其代码实现

选择排序 选择排序就是重复“从待排序的数据中寻找最小值&#xff0c;将其与序列最左边的数字进行交换”这一操作的算法。在序列中寻找最小值时使用的是线性查找。 算法步骤: 1.使用线性查找在数据中寻找最小值, 于是我们找到了最小值1 2.将最小值1与序列最左边的…

【SqL】数据库脚本编写规范和指南

编写本文档的目的是保证在开发过程中产出高效、格式统一、易阅读、易维护的SQL代码。 1 编写目的 2 SQL书写规范 3 SQL编写原则 软件全套资料获取进主页或者本文末个人名片直接获取。

Nodejs及stfshow相关例题

Nodejs及stfshow相关例题 Node.js 是一个基于 Chrome V8 引擎的 Javascript 运行环境。可以说nodejs是一个运行环境&#xff0c;或者说是一个 JS 语言解释器而不是某种库。 Node.js可以生成动态页面内容Node.js 可以在服务器上创建、打开、读取、写入、删除和关闭文件Node.js…

panic对defer语句的执行的影响

1.主线程中的panic会直接导致所有正在运行的go协程无法执行,还会导致声明在它之后的defer语句无法执行。 package mainimport ("fmt""time" )func main() {defer fmt.Println("defer1") //声明在panic之前的defer会执行go func() {defer fmt.Pri…

微信小程序反编译/解包

微信小程序反编译/解包 环境与工具 操作系统&#xff1a;Windows 11 23H2 微信版本&#xff1a;3.9.10.19 Q&#xff1a;如何找到小程序文件位置&#xff1f; A&#xff1a;在微信的设置找到文件路径&#xff0c;小程序文件位于 \WeChat Files\Applet\。 Q&#xff1a;小程…

STM32笔记-AD模数转换

目录 一、ADC介绍 二、ADC主要特征 三、ADC框图 1. ​​​​ 外部触发转换 ​ 2. 转换模式 3. 输入通道 4. 逻辑框图 四、校准 五、数据对齐 六、AD转换步骤 七、AD_Init(单通道AD转换)初始化函数配置 DMA: adc_dma_mode_enable(ADC0); 这段代码是用来使能ADC的DMA&a…

怎么一键消除路人?教你三个消除方法

怎么一键消除路人&#xff1f;在数字时代&#xff0c;摄影已成为我们记录生活、表达情感的重要方式。然而&#xff0c;完美的照片背后往往隐藏着一些不那么完美的元素——比如那些不经意间闯入镜头的路人。他们或许只是匆匆过客&#xff0c;但却足以破坏你精心构图的美好瞬间。…

视觉SLAM十四讲:从理论到实践(Chapter5:相机与图像)

前言 学习笔记&#xff0c;仅供学习&#xff0c;不做商用&#xff0c;如有侵权&#xff0c;联系我删除即可 目标 理解针孔相机的模型、内参与径向畸变参数。理解一个空间点是如何投影到相机成像平面的。掌握OpenCV的图像存储与表达方式。学会基本的摄像头标定方法。 一、相…

PS —— 精修图像

PS —— 精修图像 修复污点修复画笔工具修复画笔工具 美白滤镜去杂锐化加杂减淡和锐化工具 我觉得今天这篇博客&#xff0c;无论是男同胞还是女同胞&#xff0c;都要熟练掌握&#xff08;哈哈哈哈…) 今天我们来学习如何精修图像&#xff0c;精修图像一般分为几步——修复&…

5.24学习记录

[FSCTF 2023]ez_php2 比较简单的pop链 <?php highlight_file(__file__); Class Rd{public $ending;public $cl;public $poc;public function __destruct(){echo "All matters have concluded";die($this->ending);}public function __call($name, $arg){for…

Sap Hana 数据迁移同步优化(二)

简述 CloudCanal 近期对 Hana 源端链路做了新一轮优化&#xff0c;这篇文章简要做下分享。 本轮优化主要包含: 表级别 CDC 表表级别任务位点表级别触发器 单 CDC 表的问题 CloudCanal 在实现 Hana 源端增量同步时&#xff0c;最初采用的是单 CDC 表的模式。 即所有订阅表…

2024年5月23日 (周四) 叶子游戏新闻

《Unclogged》Steam页面上线 马桶主题恐怖逃脱解谜Brody制作并发行&#xff0c;一款奇葩创意马桶主题恐怖逃脱解谜新游《Unclogged》Steam页面上线&#xff0c;本作暂不支持中文。 Meta人工智能主管杨立昆 大语言模型不会达到人类智能水平IT之家今日&#xff08;5月23日&#x…

B站pink老师CSS学习(二)

文章目录 一、emmet语法1.快速生成HTML结构语法 二、复合选择器1.什么是复合选择器2.后代选择器3.子选择器4.并集选择器5.伪类选择器6.链接伪类选择器7&#xff1a;focus伪类选择器8.总结 三、元素的显示模式1.什么是元素显示模式2.块元素3.行内元素4.行内块元素5.总结6.元素显…

黑马点评1——短信篇(基于session)

&#x1f308;hello&#xff0c;你好鸭&#xff0c;我是Ethan&#xff0c;一名不断学习的码农&#xff0c;很高兴你能来阅读。 ✔️目前博客主要更新Java系列、项目案例、计算机必学四件套等。 &#x1f3c3;人生之义&#xff0c;在于追求&#xff0c;不在成败&#xff0c;勤通…

uniapp 安卓 Pc端真机浏览器调试

下载插件:真机模拟浏览器 1. 安装, 每次启用时使用usb 线连接电脑, 并且打开手机或者POS (调试设备)开发者模式, 比如我的是pos 机 则在系统设置中找到版本号,点击多次就会触发开发者模式 2.打开真机模拟软件,打开后会打开一个浏览器,如果想要模拟google的浏览器则 在浏览器地…