上次的作业答案,非常简单。

第一题:

我们需要知道,字符(char类型)在计算机中存储的时候,是把这个字符对应的代码(专业术语叫做编码)进行存储。例如,换行符'\n'的代码就是10,'0'对应的代码就是48.

c>='0'&&c<='9'表示它的存储代码介于'0'和'9'之间,其中的字符有:

'0' '1' '2' '3' ...'9',所有的数字字符都在里面,因此,输入的是4,它的代码介于两者之间,应该输出4 is a number.

第二题:

#include<iostream>
using namespace std;
int main(){
int a,b;
char c;
cin>>a>>c>>b;
if(c=='+')cout<<a+b;
if(c=='-')cout<<a-b;
if(c=='*')cout<<a*b;
if(c=='/'){
if(b==0)cout<<"error";//除数为0错误
else cout<<a/b;
}
}

根据c的值进行分类计算,注意除数为0的情况(直接除0程序会崩溃)。

注:if语句如果大括号内只有一个语句,括号可以省略

今天我们继续讲解if语句。

if语句的括号中,扩起来的是一个条件表达式。例如,if(a>0)中,a>0就是一个条件表达式。条件表达式的值只有真和假。

尝试阅读程序写结果:

#include<iostream>
using namespace std;
int main(){
if(-1)cout<<"true";
else cout<<"false";
}

输出:true

if语句判断条件表达式时,只要结果不为0,都看做是真。

如果有多个表达式都要满足,我们可以使用逻辑运算符。

例如,判断一个数是否为数字,我们可以使用if(c>='0'&&c<='9'),&&表示前后两个条件都要满足。

#include<iostream>
using namespace std;
int main(){
if(1&&0)cout<<"true";
else cout<<"false";
}

输出:false

只有所有条件均满足(值为1),结果才为1,否则结果为0.

其实&&运算结果类似于乘法运算“*”,只要有一个乘数为0,结果就是0.

如果多个表达式任意一个满足,可以使用||,表示“或”。

#include<iostream>
using namespace std;
int main(){
if(1||0)cout<<"true";
else cout<<"false";
}

输出:true

1和0中,有一个成立,所以结果是成立的,输出true。

同理,或运算也可以看成是加法运算,有一个是1,结果就是1.(如果加法运算算出2或者3这类数值,也是“真”,看做是1)

同时,C++也含有一个运算符“非”,表示将后面的条件取反,1变成0,0变成1.

常见例子:

if(a==0)这个表达式可以写成if(!a),可以自己思考一下为什么。

课后作业:

阅读程序写结果。

#include <iostream>
using namespace std; int main()
{
int a = 5;
int b = 20;
int c ; if ( a && b )
{
cout << "Line 1 - 条件为真"<< endl ;
}
if ( a || b )
{
cout << "Line 2 - 条件为真"<< endl ;
}
/* 改变 a 和 b 的值 */
a = 0;
b = 10;
if ( a && b )
{
cout << "Line 3 - 条件为真"<< endl ;
}
else
{
cout << "Line 4 - 条件不为真"<< endl ;
}
if ( !(a && b) )
{
cout << "Line 5 - 条件为真"<< endl ;
}
return 0;
}
//来源https://www.runoob.com/cplusplus/cpp-operators.html

【C++基础教程】第五课的更多相关文章

  1. Adafruit的树莓派教程第五课:使用控制电缆

    Adafruit的树莓派教程第五课:使用控制电缆 时间 2014-05-09 01:11:20 极客范 原文 http://www.geekfan.net/9095/ 主题 Raspberry PiM ...

  2. python基础教程项目五之虚拟茶话会

    python基础教程项目五之虚拟茶话会 几乎在学习.使用任何一种编程语言的时候,关于socket的练习从来都不会少,尤其是会写一些局域网的通信的东西.所以书上的这个项目刚好可以练习一下socket编程 ...

  3. Objective-C 基础教程第五章,复合

    目录 Objective-C 基础教程第五章,复合 什么是复合? Car程序 自定义NSLog() 存取方法get Set Tires(轮胎) 存取方法 Car类代码的其他变化 扩展Car程序 复合还 ...

  4. Android OpenGL教程-第五课【转】

    第五课 3D空间: 我们使用多边形和四边形创建3D物体,在这一课里,我们把三角形变为立体的金子塔形状,把四边形变为立方体. 先看看三角形的顶点变成啥了 private float[] mTriangl ...

  5. NeHe OpenGL教程 第五课:3D空间

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  6. Zookeeper基础教程(五):C#实现Zookeeper分布式锁

    分布式锁 互联网初期,我们系统一般都是单点部署,也就是在一台服务器完成系统的部署,后期随着用户量的增加,服务器的压力也越来越大,响应速度越来越慢,甚至出现服务器崩溃的情况. 为解决服务器压力太大,响应 ...

  7. 【C++基础教程】第二课

    一,上次的课后练习答案 1,输出1+2=3 2,输出2 2.25 2.25 2.25 3,第一空iostream或bits/stdc++.h 第二空main(),main(void)或main(int ...

  8. 【C++基础教程】第一课

    一,C++基础 1.1.什么是C++ C++是一种面向对象的编程语言,如今被广泛应用于各种行业. 1.2.C++的语法特点 一般C++的程序长成这个样子: #include<...> // ...

  9. [原]OpenGL基础教程(五)缓冲区数据更新方式

    1.glBufferSubData 适用于相同数据类型 void SetPositionY(float y){    vector<Vector3<float>>::itera ...

  10. python基础教程(五)

    字符串基本操作 所有标准的序列操作(索引.分片.乘法.判断成员资格.求长度.取最小值和最大值)对字符串同样适用,前面已经讲述的这些操作.但是,请注意字符串都是不可变的. 字符串的方法: 字符串从str ...

随机推荐

  1. Docker部署netcore web实践

    1. 新建一个netcore的项目 2. 我们到项目的生成输出目录下,创建一个Dockerfile文件 3. 编辑Dockerfile文件 备注:红线圈住的地方,就是你生成的netcore的程序名称 ...

  2. 熬夜肝了一份 C++/Linux 开发学习路线

    大家好,我是帅地. 之前写过几篇学习路线的文章 前端开发学习路线 Java 后端开发学习路线 一般开发岗主流的就是 Java 后台开发,前端开发以及 C++ 后台开发,现在 Go 开发也是越来越多了, ...

  3. SQL注入之MySQL报错注入整理

    看大佬们的文章看得我虎躯一震,精神抖擞,于是心血来潮,整理一下MySQL报错注入常见的手段和方法,再举几个例子 <代码审计:企业级Web代码安全架构>一书中介绍过报错注入十大方法,依次是: ...

  4. (一)Linux之目录结构

    Linux之目录结构 目录 Linux之目录结构 一.概述 一.基本介绍 二.具体的目录结构(不用背,知道即可) Linux /usr目录 Linux /var 目录 一.概述 学习 Linux,不仅 ...

  5. 微信小程序 简易搜索功能实现

    先看效果图 挺简单的一个实现方法,导入外部js数据,将数据通过radio-group展示出来,根据数据里的status属性判断显不显示该项. 在搜索框内实时读取输入的数据,去除空格后将数据跟js里的n ...

  6. docker部署Redis6-0-6

    下载redis.conf配置 下载地址: http://download.redis.io/redis-stable/redis.conf 拉取docker镜像 docker pull redis:6 ...

  7. idea中导包出现import org.apach.*,提交代码老出现冲突,不想使用.*的设置

    打开设置>Editor>Code Style>Java>Scheme Default>Imports ① 将Class count to use import with ...

  8. Dos 获取网络的命令

    Netsh mbn 命令 https://docs.microsoft.com/zh-cn/windows-server/networking/technologies/netsh/netsh-mbn ...

  9. 自研 Pulsar Starter:winfun-pulsar-spring-boot-starter

    原文:自研 Pulsar Starter:winfun-pulsar-spring-boot-starter 里程碑 版本 功能点 作者 完成 1.0.0 支持PulsarTemplate发送消息&a ...

  10. Node.js开发博客系统

    数据库设计 用户表: id phone password nickname head_img personal_sign level_id create_time update_time is_del ...