【C++语法-基础】多种条件分支

本文详细介绍了C++中的各种条件分支语句,包括if、else、if-else、if-elseif-else和switch-case,以及逻辑运算符的使用。通过实例演示如何判断数值的奇偶性、正负性和闰年。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引言

在C++中,条件分支是一个重要概念。它分为多种程序语句,可以嵌套在循环里也可以单独出来判断。今天,我们就来了解多种条件分支语句。


目录

if单分支语句

比较运算符

if-else双分支语句

if-else if-else多分支语句

switch-case语句

逻辑运算符

例题:闰年判断


if单分支语句

在学习多分支语句之前,我们先来学习一下最基础的if语句。if语句的作用是判断某条件是否成立,并在成立时执行语句,例如以下程序:

if(a % 2 == 0){
    cout << "偶数";
}

这段程序的作用是判断一个数a是否为偶数,如果是输出YES。但是很明显,这段程序无法对奇数进行操作,因此我们可以发现,if语句只能对一种情况进行处理,而它的基本用法为:

if(判断条件){

        代码块

}

 只有在判断条件为true(真)时,才会执行代码块;否则(判断条件为false(假)),将会略过这串代码。(true和false均为bool(布尔)类型数据)


比较运算符

通过刚才的代码,可以发现:在判断两个部分是否相等时,我们是用的是==而不是=,这是因为==是比较运算符,而=是赋值语句(无法进行判断)。常见的比较运算符及其作用如下:

  • ==:判断两个值是否相等,如果相等返回true,否则返回false;
  • !=:判断两个值是否不相等,如果不相等返回true,否则返回false;
  • >:判断左边的值是否大于右边的值,如果是返回true,否则返回false;
  • <:判断左边的值是否小于右边的值,如果是返回true,否则返回false;
  • >=:判断左边的值是否大于等于右边的值,如果是返回true,否则返回false;
  • <=:判断左边的值是否小于等于右边的值,如果是返回true,否则返回false

在使用比较运算符时,我们需要区分>和>=、 <和<=的区别,例如以下几组代码:

//判断a是否是正数
if(a > 0)

//判断a是否是非负数
if(a >= 0)

//判断a是否是负数
if(a < 0)

//判断a是否是非正数
if(a <= 0)

if-else双分支语句

if语句是单分支语句,那么加上一个else,就成为了可以对判断条件为否的情况进行处理。以下代码补充了对a的奇偶性判断:

if(a % 2 == 0) cout << "偶数";
else cout << "奇数";

如果if判断条件里的内容不为true,就执行else内的代码块,即:

而if-else因为能对数据进行两种分支操作,因此被称为双分支语句。双分支语句的用法为:

if(判断条件){

        代码块1

}else{

        代码块2

}


if-else if-else多分支语句

else if可以对多种if内判断条件为否的情况进行处理,比if-else语句更加适用于需要考虑多重情况的题目。以下代码可以对a进行正负性判断:

if(a > 0) cout << "正数";
else if(a == 0) cout << "0";
else cout << "负数";

注意,else if和else一样,只能与if相用。执行过程是这样的:

由于if-else if-else语句能多重判断,所以称为多分支语句,其中else if语句能多次出现,else语句只能出现1次。 多分支语句的用法:

if(判断条件){

        代码块1

}else if(判断条件){

        代码块2

}else{

        代码块3

}


switch-case语句

switch-case语句类似于if-else语句的逻辑,可用于判断多种条件。其用法为:

switch (expression) {
    case value1:
        // code block 1
        break;
    case value2:
        // code block 2
        break;
    ...
    default:
        // code block 3
        break;
}

 参数解释:

  • expression 是一个表达式,它的值会与每个case的值进行比较;
  • case value1 和 case value2 是多个分支,分别表示不同的条件。当expression的值与某个case的值相等时,就执行对应的代码块;
  • break 是用来中断switch-case语句的执行。当某个case中的代码块执行完毕后,必须加上break语句,否则代码会继续执行下一个case中的代码块;
  • default 是可选的分支,用于当没有任何case的值匹配expression时执行的代码块。

以下代码可判断一个整数所对应的星期的英文单词:

switch(n){
        case 1:cout << "Monday"; break;
        case 2:cout << "Tuesday"; break;
        case 3:cout << "Wednesday"; break;
        case 4:cout << "Thursday"; break;
        case 5:cout << "Friday"; break;
        case 6:cout << "Saturday"; break;
        case 7:cout << "Sunday"; break;
}

switch-case语句知识较为繁多且实践较困难,建议初学者了解即可。


逻辑运算符

&&||!是逻辑运算符,可以简化条件分支嵌套的繁琐过程。逻辑运算符有优先级,为:逻辑非(!)>逻辑与(&&)>逻辑或(||)。需要改变优先级时,使用英文半角小括号()即可。

以下程序可简化判断一个数a是否是两位数的代码:

//双分支语句嵌套判断
if(a >= 10){
    if(a <= 99){
        cout << "YES";
    }else{
        cout << "NO";
    }
}else{
    cout << "NO";
}

//逻辑运算符简化判断
if(a >= 10 && a <= 99) cout << "YES";
else cout << "NO";

例题:闰年判断

思路                                                                                                                                                                   本题的难点在于了解闰年,我们只需要使用一个if-else语句即可完成。而在if判断条件中,我们可以使用括号规定逻辑运算优先级,并使用(n%400!=0&&n%100==0)||n%4!=0判断平年。

题解

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n; cin >> n;
    if((n % 400 != 0 && n % 100 == 0) || n % 4 != 0){ //判断平年条件
        cout << 1;
    }else{ //否则即闰年
        cout << 0;
    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值