C++从入门到放弃--6.分支结构程序设计(上)

本文介绍了C++中的关系运算符,包括bool类型以及非0即为真的概念。接着讲解了算术运算符的使用,如加减乘除和求余。然后,作者阐述了逻辑运算符,如&&、||和!,并展示了如何用它们进行条件组合。最后,详细讨论了if语句的不同形式,包括简单的if、if-else和if-elseif-else语句,以及if语句的嵌套,帮助读者理解如何根据条件执行不同的代码块。
摘要由CSDN通过智能技术生成

目录

6.1 关系运算符

6.1.1 bool

6.1.2.1 非0即为真 

6.1.3 算术

6.1.3.1 小括号

 6.1.3.2 运算符优先级

6.1.4 关系运算符

6.2 逻辑运算符

6.3 if语句

6.3.1 简单的if语句

6.3.2 if-else语句

6.3.2 if-else if-else语句 

6.3.2 if语句的嵌套


Hello~大家好,先跟大家道个歉,昨天没更新啊。 

上上篇有个要纠正的地方,4.2.2 字母大法L指的是long double,但是还是不推荐用字母。

开始正文吧~

我们之前学的程序都是是什么就是什么,没有条件的判断,所以今天我们学习分支结构,可以有条件判断。

学这个,我们要有一些前期准备工作:

6.1 关系运算符

关系运算符是什么意思?卖个关子

关系运算符牵扯到我们之前讲的数据类型bool,先把它讲了。

6.1.1 bool

bool是一种数据类型,它只有两个可能,真或者假。看一眼:

比如我们要一个bool变量来判断考试是否开始(我希望永远为假):

bool test; 

同样,它也阔以用赋值表达式:

bool is_ready = true;
bool is_ready = 1;      //等价于bool is_ready = true;
bool is_ready = false;
bool is_ready = 0       //等价于bool is_ready = false;

也可以用true和false表示真和假,这里说个知识点:

6.1.2.1 非0即为真 

跟标题一样,非零即为真,看代码:

bool is_ready = 0;     //等价于false
bool is_ready = 56856954;     //等价于true
bool is_ready = 4.5;     //等价于true
//...

只要它是个数据类型都能转换为bool类型的true和false。 

6.1.3 算术

算术,应该学过(必须!!!)吧,C++里就有,看一眼下面的:

4 + 2  //返回6
4 - 2  //返回2
4 * 2  //返回8
4 / 2  //返回2
4 % 2  //返回0

你可能会问3个问题,咱们一一解答:

*是什么

乘号,C++里没有类似于×的符号

/是什么

除号,C++里也没有类似于÷的符号

%是什么

求余,比如5除2,它不能整除,余1对吧,那5%2就返回1,4除2能整除,就返回0

6.1.3.1 小括号

还有小括号,C++有小括号:

5 - (5 - 2);  //返回2

没有中括号和大括号,如果你想实现{3 + [5 - 2 + (1 + 1)] - 1}  - 1的话,只需要套小括号就行:

(3 + (5 - 2 + (1 + 1)) - 1) - 1;  //返回5

 6.1.3.2 运算符优先级

比如下面的算式:

3 + 6 * 4  //36还是27?

计算机是人发明的,所以肯定和人的一些习惯有相似之处,我们是先乘除后加减,有括号就先算小括号,再算中括号,后算大括号,计算机一样的,所以上面的返回27。

有时候,可能还会这样:

120 / 6 * 5;  //100还是40?

 这时候,因为它俩都是一个优先级,所以C++要看它结合性(查查)是从左往右,还是从右往左,它俩是从左往右,所以是100。

6.1.4 关系运算符

看一看有哪些关系运算符:

关系运算符说明
1==等于,在a=1,b=1的情况下,a==b返回true,在a=1,b=2的情况下,a==b返回false
2!=不等于,在a=1,b=1的情况下,a!=b返回false,在a=1,b=2的情况下,a!=b返回true
3<大于,在a=1,b=1的情况下,a<b返回false,在a=1,b=2的情况下,a<b返回true
4>小于,在a=1,b=1的情况下,a>b返回false,在a=2,b=1的情况下,a>b返回true
5<=大于等于,在a=1,b=1的情况下,a<=b返回true,在a=1,b=2的情况下,a<=b返回true,在a=2,b=1的情况下,a<=b返回false
6>=小于等于,在a=1,b=1的情况下,a>=b返回true,在a=1,b=2的情况下,a>=b返回false,在a=2,b=1的情况下,a>=b返回true

比如,我要做一个bool变量ok,如果a等于b ,为true,否则为false:

bool ok = a == b;

6.2 逻辑运算符

我们要写一个bool类型ready,如果a大于b而且b大于c它是true,否则为false,怎么办呢?

这就需要说说逻辑运算符了,C++提供了3种逻辑运算符,&&(逻辑与),||(逻辑或),!(逻辑非)

逻辑与运算规则:

当A为false,B为false时,A&&B为false;

当A为false,B为true时,A&&B为false;

当A为true,B为false时,A&&B为false;

当A为true,B为true时,A&&B为true。

逻辑与运算规则:

当A为false,B为false时,A||B为false;

当A为false,B为true时,A||B为true;

当A为true,B为false时,A||B为true;

当A为true,B为true时,A||B为true。

逻辑非运算规则:

当A为false时,!A为true;

当A为true时,!A为false。

我们用表达式实现开头的问题:

bool ready = a > b && b > c;  //条件缺一不可

我们要写一个bool类型start,如果a大于b或b大于c它是true,否则为false,怎么办呢?

bool start = a > b || b > c;  //满足一个就行

 我们要写一个bool类型good,如果a是true,它是false,如果a是false,它是true,怎么办呢?

bool good = !a;  //跟a反着来

6.3 if语句

6.3.1 简单的if语句

先看格式:

if (<条件表达式>) {
    <语句块>
}

我们看一眼程序怎么处理它:

我们看一个程序:

#include <iostream>
using namespace std;

int main() {
    int a;
    cin >> a;
    if (a == 1) {
        cout << "a is 1";
    }
    return 0;
}

意思大概是这样的:如果输入的a是1 ,输出“a is 1”,如果a不是1,啥也不干。

我们借助流程图理解一下:

因为我们对if语句不太了解,所以用流程图是最好的办法。

6.3.2 if-else语句

有时候我们在条件为假时也要做事情,所以下面这种语句诞生了:

if (<条件表达式>) {
    <语句块1>
}
else {
    <语句块2>
}

流程图贴上:

 所以我们可以改造一下刚才的程序:
 

#include <iostream>
using namespace std;

int main() {
    int a;
    cin >> a;
    if (a == 1) {
        cout << "a is 1";
    }
    else {
        cout << "a isn't 1";
    return 0;
}

意思大概是这样的:如果输入的a是1 ,输出“a is 1”,如果a不是1,输出“a isn't 1”。 

6.3.2 if-else if-else语句 

有时候,可能有多个要判断的东西,所以有这种语法:

if (<条件表达式1>) {
    <语句块1>
}
else if (<条件表达式2>) {
    <语句块2>
} //可以加多个else if
else {
    <语句块3>
}

呵呵,我知道你们在想什么:

所以我们再来改造一下:

#include <iostream>
using namespace std;

int main() {
    int a;
    cin >> a;
    if (a == 1) {
        cout << "a is 1";
    }
    else if (a == 2) {
        cout << "a is 2";
    }
    else if (a == 3) {
        cout << "a is 3";
    }
    else {
        cout << "a isn't 1, 2 or 3";
    }

    return 0;
}

6.3.2 if语句的嵌套

经常遇到这种情况,如果条件1成立,去做A事情,并且是如果条件2成立,同时做B事情,这时候就需要if语句嵌套了。

if (<条件表达式1>) {
    <语句块1>
    if (<条件表达式2>) {
    <语句块2> 
    }
}
else if (<条件表达式3>) {
    <语句块3>
} //可以加多个else if
else {
    <语句块4>
}

 

先到这里吧,拜~

允许转载,请注明出处 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值