C++语法14 双分支结构 if…else语句和逻辑运算符

什么是双分支结构?

双分支:有两条路,而且这两条路都可以选择。如果满足判断条件,就执行语句1,不满足就执行语句2。

双分支结构基本框架

复制代码
if(条件表达式)  //如果条件成立
{
      语句1;    //条件真时执行
 }
else             //否则
{
      语句2;    //条件假时执行
}

训练:期末成绩

乐乐在期末考试结束,感觉心里没底,于是提前去问老师考试情况,老师告诉他的得分为a,达到60分就是及格,未达到就是不及格。如果及格就输出happy(开心),不及格就输出sad(悲伤)。(0<=a<=100)

【输入格式】一个整数a,表示分数

【输出格式】happy或者sad

【输入样例】75

【输出样例】happy

解析

达到60分:达到60分是包括60分,且大于60分,如果用a表示分数,达到60分就是a>=60,输出"yes"

未到达60分:达到60分的相对面,即除去大于等于60的情况,输出"no",这里用else语句

参考代码

复制代码
#include <iostream>
using namespace std;
int main( )
{
    int a;
    cin>>a;
    if(a>=60)  cout<<"happy";
    else   cout<<"sad";
    return 0;
}

逻辑运算符

"并且"在C++中的写法为"&&",它是一种运算符,称作逻辑运算符。

逻辑运算符有3种:

与、并且( && )

或者(||)

非(!)

&&(并且)

当参与运算的两个条件都为真时,结果才会真(1);否则为假(0)。

如:5>0 && 4>2

由于5>0为真,4>2也为真,相"与"的结果也为1。

5>6 && 4>2

由于5>6为假,则不管后面为不为真,相"与"结果都为0。

||(或者)

当参与运算的两个条件中只要有一个为真,结果就为真(1);当两个量都为假时,结果为假(0)。

如:5>0 || 4>8

由于5>0已经为真,不管后面是否为真,相或结果都为1;

5<0 || 4>8

由于5<0为假,4>8也为假,相或结果也为0。

&&和||的区别

if(a>b&&a>c) cout<<a;

如果a比b大,a又比c大,a就是最大的。也就是说如果a是最大值就输出a

if(a>b||a>c) cout<<a;

如果a比b大,或者a比c大,a就是不是最小的。

!(非)

当参与运算的量为真时,结果为假(0);当参与运算的量为假时,结果为真(1)。

如:!(5>0)

由于5>0的结果为真,非的结果为0。

!(4>8)

由于4>8的结果为假,非的结果为1。

训练:三人比赛

乐乐和克克希望跟老师比赛跑操场三圈。于是分别对三人的跑步时间进行了记录,乐乐花费时间a,克克花费时间b,老师花费时间c,三人约定只要乐乐和克克中有一个人能赢老师就算都赢了。请问他俩是否能赢得比赛?(a<=100,c<=100,b<=100)

【输入格式】三个正整数,a,b,c,分别表示三人的时间

【输出格式】yes或者no

【输入样例】10 15 12

【输出样例】yes

解析

用时少者赢:跑步比赛,时间用时少者赢得比赛

赢得比赛情况:乐乐与克克只要其中一人赢得比赛就算赢,即乐乐赢或者克克赢或者全赢,都算赢

参考代码

复制代码
#include <iostream>
using namespace std;
int main( )
{
    int a,b,c;
    cin>>a>>b>>c;
    if(a<c||b<c)  cout<<"yes";
    else  cout<<"no";
    return 0;
}
相关推荐
蜡笔小马几秒前
13.C++设计模式-策略模式
c++·设计模式·策略模式
重生之我是Java开发战士3 分钟前
【贪心算法】柠檬水找零,将数组和减半的最少操作次数,最大数,摆动序列, 最长递增子序列,递增的三元子序列
算法·贪心算法
我命由我123453 分钟前
Android 开发问题:TextView 内容超过宽度时,默认不会换行
android·开发语言·java-ee·android studio·android jetpack·android-studio·android runtime
Godspeed Zhao4 分钟前
从零开始学AI17——SVM的数学支撑知识
算法·机器学习·支持向量机
计算机安禾4 分钟前
【c++面向对象编程】第36篇:析构函数应永远不抛出异常——原因与最佳实践
开发语言·c++
我爱cope6 分钟前
【力扣hot100:53. 最大子数组和】
算法·leetcode·职场和发展
一条泥憨鱼7 分钟前
【Java 进阶】LinkedHashMap 与 TreeMap
java·开发语言·数据结构·笔记·后端·学习
ゆづき8 分钟前
假如编程语言们有外号
java·c语言·c++·python·学习·c#·生活
凤山老林9 分钟前
63-Java LinkedList(链表)
java·开发语言·链表
恣艺15 分钟前
用Go从零实现一个高性能KV存储引擎:B+Tree索引、WAL持久化、LRU缓存的工程实践
开发语言·数据库·redis·缓存·golang